|
|
1.1 ! root 1: /* ! 2: ============================================================================== ! 3: ! 4: boss3 ! 5: ! 6: ============================================================================== ! 7: */ ! 8: ! 9: #include "g_local.h" ! 10: #include "m_boss32.h" ! 11: ! 12: void Use_Boss3 (edict_t *ent, edict_t *other, edict_t *activator) ! 13: { ! 14: gi.WriteByte (svc_temp_entity); ! 15: gi.WriteByte (TE_BOSSTPORT); ! 16: gi.WritePosition (ent->s.origin); ! 17: gi.multicast (ent->s.origin, MULTICAST_PVS); ! 18: G_FreeEdict (ent); ! 19: } ! 20: ! 21: void Think_Boss3Stand (edict_t *ent) ! 22: { ! 23: if (ent->s.frame == FRAME_stand260) ! 24: ent->s.frame = FRAME_stand201; ! 25: else ! 26: ent->s.frame++; ! 27: ent->nextthink = level.time + FRAMETIME; ! 28: } ! 29: ! 30: /*QUAKED monster_boss3_stand (1 .5 0) (-32 -32 0) (32 32 90) ! 31: ! 32: Just stands and cycles in one place until targeted, then teleports away. ! 33: */ ! 34: void SP_monster_boss3_stand (edict_t *self) ! 35: { ! 36: if (deathmatch->value) ! 37: { ! 38: G_FreeEdict (self); ! 39: return; ! 40: } ! 41: ! 42: self->movetype = MOVETYPE_STEP; ! 43: self->solid = SOLID_BBOX; ! 44: self->model = "models/monsters/boss3/rider/tris.md2"; ! 45: self->s.modelindex = gi.modelindex (self->model); ! 46: self->s.frame = FRAME_stand201; ! 47: ! 48: gi.soundindex ("misc/bigtele.wav"); ! 49: ! 50: VectorSet (self->mins, -32, -32, 0); ! 51: VectorSet (self->maxs, 32, 32, 90); ! 52: ! 53: self->use = Use_Boss3; ! 54: self->think = Think_Boss3Stand; ! 55: self->nextthink = level.time + FRAMETIME; ! 56: gi.linkentity (self); ! 57: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.