static void G_UseEdict_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)) { gi.DPrintf("No entity with number %i\n", i); return; } e = G_EdictsGetByNum(i); if (!e->use) { gi.DPrintf("No use function for entity %s\n", e->classname); return; } gi.DPrintf("Call use function for %s\n", e->classname); e->use(e, nullptr); }
/** * @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; }