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