/*QUAKED trigger_elevator (0.3 0.1 0.6) (-8 -8 -8) (8 8 8) */ void trigger_elevator_use (edict_t *self, edict_t *other, edict_t *activator) { edict_t *target; if (self->movetarget->nextthink) { // gi.dprintf("elevator busy\n"); return; } if (!other->pathtarget) { gi.dprintf("elevator used with no pathtarget\n"); return; } target = G_PickTarget (other->pathtarget); if (!target) { gi.dprintf("elevator used with bad pathtarget: %s\n", other->pathtarget); return; } self->movetarget->target_ent = target; train_resume (self->movetarget); }
void train_use (edict_t *self, edict_t *other, edict_t *activator) { self->activator = activator; if (self->spawnflags & TRAIN_START_ON) { if (!(self->spawnflags & TRAIN_TOGGLE)) return; self->spawnflags &= ~TRAIN_START_ON; VectorClear (self->velocity); self->nextthink = 0; } else { if (self->target_ent) train_resume(self); else train_next(self); } }