1 /*
2 ==============================================================================
3
4 boss3
5
6 ==============================================================================
7 */
8
9 #include "g_local.h"
10 #include "m_boss32.h"
11
Use_Boss3(edict_t * ent,edict_t * other,edict_t * activator)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
Think_Boss3Stand(edict_t * ent)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 */
SP_monster_boss3_stand(edict_t * self)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 }
58