// the trigger was just activated // ent.activator should be set to the activator so it can be held through a // delay so wait for the delay time before firing public static void multi_trigger(Entity ent) { if (ent.nextthink != 0) return; // already been triggered GameUtil.G_UseTargets(ent, ent.activator); if (ent.wait > 0) { ent.think = multi_wait; ent.nextthink = GameBase.level.time + ent.wait; } else { // we can't just remove (self) here, because this is a touch // function // called while looping through area links... ent.touch = null; ent.nextthink = GameBase.level.time + Constants.FRAMETIME; ent.think = GameUtil.G_FreeEdictA; } }
public boolean think(Entity ent) { ent.nextthink = 0; return true; }