/* =============== trigger_buildable_trigger =============== */ void trigger_buildable_trigger( gentity_t *self, gentity_t *activator ) { self->activator = activator; if( self->s.eFlags & EF_NODRAW ) return; if( self->nextthink ) return; // can't retrigger until the wait is over if( self->s.eFlags & EF_DEAD ) { if( !trigger_buildable_match( self, activator ) ) G_UseTargets( self, activator ); } else { if( trigger_buildable_match( self, activator ) ) G_UseTargets( self, activator ); } if( self->wait > 0 ) { self->think = multi_wait; self->nextthink = level.time + ( self->wait + self->random * crandom( ) ) * 1000; } else { // we can't just remove (self) here, because this is a touch function // called while looping through area links... self->touch = 0; self->nextthink = level.time + FRAMETIME; self->think = G_FreeEntity; } }
/* =============== trigger_buildable_trigger =============== */ void trigger_buildable_trigger(gentity_t *self, gentity_t *activator) { self->activator = activator; if (self->s.eFlags & EF_NODRAW) return; if (self->nextthink) return; // can't retrigger until the wait is over if (self->s.eFlags & EF_DEAD) { if (!trigger_buildable_match(self, activator)) { G_UseTargets(self, activator); trigger_check_wait(self); } } else { if (trigger_buildable_match(self, activator)) { G_UseTargets(self, activator); trigger_check_wait(self); } } }