void monster_triggered_spawn (edict_t *self) { self->s.origin[2] += 1; MonsterKillBox (self); self->solid = SOLID_BBOX; self->movetype = MOVETYPE_STEP; self->svflags &= ~SVF_NOCLIENT; self->air_finished = level.time + 12; gi.linkentity (self); monster_start_go (self); if (self->enemy && !(self->spawnflags & 1) && !(self->enemy->flags & FL_NOTARGET)) { FoundTarget (self); } else { self->enemy = NULL; } // some sort of spawn effect // TODO good enough? self->s.event = EV_PLAYER_TELEPORT; MonsterPlayerKillBox(self); }
void monster_triggered_spawn(edict_t *self) { self->s.origin[2] += 1; KillBox(self); self->solid = SOLID_BBOX; self->movetype = MOVETYPE_STEP; self->svflags &= ~SVF_NOCLIENT; self->air_finished = level.time + 12; gi.linkentity(self); monster_start_go(self); if (self->enemy && !(self->spawnflags & SF_MONSTER_SIGHT) && !(self->enemy->flags & FL_NOTARGET)) { if (!(self->enemy->flags & FL_DISGUISED)) { FoundTarget(self); } else { self->enemy = NULL; } } else { self->enemy = NULL; } }
void walkmonster_start_go(edict_t *self) { if (!(self->spawnflags & SF_MONSTER_TRIGGER_SPAWN) && (level.time < 1)) { M_droptofloor(self); if (self->groundentity) { if (!M_walkmove(self, 0, 0)) { gi.dprintf("%s in solid at %s\n", self->classname, vtos(self->s.origin)); } } } if (!self->yaw_speed) { self->yaw_speed = 20; } self->viewheight = 25; monster_start_go(self); if (self->spawnflags & SF_MONSTER_TRIGGER_SPAWN) { monster_triggered_start(self); } }
void swimmonster_start_go(edict_t *self){ if(!self->yaw_speed) self->yaw_speed = 10; self->viewheight = 10; monster_start_go(self); if(self->spawnflags & 2) monster_triggered_start(self); }
void swimmonster_start_go (edict_t *self) { if (!self->yaw_speed) self->yaw_speed = 10; self->viewheight = 10; monster_start_go (self); if (self->spawnflags & SF_MONSTER_TRIGGER_SPAWN) monster_triggered_start (self); }
void flymonster_start_go(edict_t *self){ if(!M_walkmove(self, 0, 0)) gi.dprintf("%s in solid at %s\n", self->classname, vtos(self->s.origin)); if(!self->yaw_speed) self->yaw_speed = 10; self->viewheight = 25; monster_start_go(self); if(self->spawnflags & 2) monster_triggered_start(self); }
void flymonster_start_go (edict_t *self) { if (!M_walkmove (self, 0, 0)) gi.dprintf ("%s in solid at %s\n", self->classname, vtos(self->s.origin)); if (!self->yaw_speed) self->yaw_speed = 10; self->viewheight = 25; self->monsterinfo.flies = 0.0; monster_start_go (self); if (self->spawnflags & SF_MONSTER_TRIGGER_SPAWN) monster_triggered_start (self); }
void walkmonster_start_go(edict_t *self){ if(!(self->spawnflags & 2) && level.time < 1){ M_droptofloor(self); if(self->groundentity) if(!M_walkmove(self, 0, 0)) gi.dprintf("%s in solid at %s\n", self->classname, vtos(self->s.origin)); } if(!self->yaw_speed) self->yaw_speed = 20; self->viewheight = 25; monster_start_go(self); if(self->spawnflags & 2) monster_triggered_start(self); }