/** * @brief Mission trigger use function */ bool G_MissionUse (Edict* self, Edict* activator) { Edict* target = G_EdictsFindTargetEntity(self->target); if (!target) { gi.DPrintf("Target '%s' wasn't found for misc_mission\n", self->target); G_FreeEdict(self); return false; } if (target->destroy) { /* set this to zero to determine that this is a triggered destroy call */ target->HP = 0; target->destroy(target); /* freed when the level changes */ self->target = nullptr; self->use = nullptr; } else if (target->use) target->use(target, activator); return true; }
static void G_DestroyEdict_f (void) { Edict* e; int i; if (gi.Cmd_Argc() < 2) { gi.DPrintf("Usage: %s <entnum>\n", gi.Cmd_Argv(0)); return; } i = atoi(gi.Cmd_Argv(1)); if (!G_EdictsIsValidNum(i)) return; e = G_EdictsGetByNum(i); if (!e->destroy) { gi.DPrintf("No destroy function for entity %s\n", e->classname); return; } gi.DPrintf("Call destroy function for %s\n", e->classname); e->destroy(e); }