/* =============== trigger_class_trigger =============== */ void trigger_class_trigger(gentity_t *self, gentity_t *activator) { // sanity check if (!activator || !activator->client) return; if (activator->client->ps.stats[STAT_TEAM] != TEAM_ALIENS) return; if (self->s.eFlags & EF_NODRAW) return; self->activator = activator; if (self->nextthink) return; // can't retrigger until the wait is over if (self->s.eFlags & EF_DEAD) { if (!trigger_class_match(self, activator)) { G_UseTargets(self, activator); trigger_check_wait(self); } } else { if (trigger_class_match(self, activator)) { G_UseTargets(self, activator); trigger_check_wait(self); } } }
/* =============== trigger_class_trigger =============== */ void trigger_class_trigger( gentity_t *self, gentity_t *activator ) { //sanity check if( !activator || !activator->client ) return; if( activator->client->ps.stats[ STAT_TEAM ] != TEAM_ALIENS ) return; if( self->s.eFlags & EF_NODRAW ) return; self->activator = activator; if( self->nextthink ) return; // can't retrigger until the wait is over if( self->s.eFlags & EF_DEAD ) { if( !trigger_class_match( self, activator ) ) G_UseTargets( self, activator ); } else { if( trigger_class_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; } }