void defender_think(edict_t *self) { if (!self) { return; } if (!self->owner) { G_FreeEdict(self); return; } /* if we've exited the level, just remove ourselves. */ if (level.intermissiontime) { sphere_think_explode(self); return; } if (self->owner->health <= 0) { sphere_think_explode(self); return; } self->s.frame++; if (self->s.frame > 19) { self->s.frame = 0; } if (self->enemy) { if (self->enemy->health > 0) { defender_shoot(self, self->enemy); } else { self->enemy = NULL; } } sphere_fly(self); if (self->inuse) { self->nextthink = level.time + 0.1; } }
// =================== // =================== void defender_think (edict_t *self) { if(!self->owner) { // gi.dprintf("think: no owner\n"); G_FreeEdict(self); return; } // if we've exited the level, just remove ourselves. if (level.intermissiontime) { sphere_think_explode(self); return; } if(self->owner->health <=0) { sphere_think_explode(self); return; } // if(level.time - self->timestamp > 1) // { // gi.sound (self, CHAN_VOICE, gi.soundindex ("powerup/dsphere.wav"), 0.6, ATTN_NORM, 0); // self->timestamp = level.time; // } self->s.frame++; if(self->s.frame>19) self->s.frame = 0; if(self->enemy) { if(self->enemy->health > 0) { // gi.dprintf( "shooting at %s\n", self->enemy->classname); defender_shoot (self, self->enemy); } else self->enemy = NULL; } // else // { // self->ideal_yaw+=3; // M_ChangeYaw (self); // } sphere_fly (self); if(self->inuse) self->nextthink = level.time + 0.1; }