|
|
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.