Quake II RTX doxygen
1.0 dev
|
|
Go to the source code of this file.
◆ ED_CallSpawn()
void ED_CallSpawn |
( |
edict_t * |
ent | ) |
|
◆ ED_NewString()
static char* ED_NewString |
( |
const char * |
string | ) |
|
|
static |
Definition at line 378 of file g_spawn.c.
383 l = strlen(
string) + 1;
389 for (i = 0 ; i < l ; i++) {
390 if (
string[i] ==
'\\' && i < l - 1) {
392 if (
string[i] ==
'n')
397 *new_p++ =
string[i];
Referenced by ED_ParseField().
◆ ED_ParseEdict()
void ED_ParseEdict |
( |
const char ** |
data, |
|
|
edict_t * |
ent |
|
) |
| |
Definition at line 467 of file g_spawn.c.
473 memset(&
st, 0,
sizeof(
st));
482 gi.error(
"%s: EOF without closing brace", __func__);
487 gi.error(
"%s: EOF without closing brace", __func__);
490 gi.error(
"%s: closing brace without data", __func__);
501 gi.dprintf(
"%s: %s is not a field\n", __func__, key);
507 memset(ent, 0,
sizeof(*ent));
Referenced by SpawnEntities().
◆ ED_ParseField()
static qboolean ED_ParseField |
( |
const spawn_field_t * |
fields, |
|
|
const char * |
key, |
|
|
const char * |
value, |
|
|
byte * |
b |
|
) |
| |
|
static |
Definition at line 414 of file g_spawn.c.
420 for (f = fields ; f->
name ; f++) {
421 if (!Q_stricmp(f->
name, key)) {
428 if (sscanf(value,
"%f %f %f", &vec[0], &vec[1], &vec[2]) != 3) {
429 gi.dprintf(
"%s: couldn't parse '%s'\n", __func__, key);
432 ((
float *)(b + f->
ofs))[0] = vec[0];
433 ((
float *)(b + f->
ofs))[1] = vec[1];
434 ((
float *)(b + f->
ofs))[2] = vec[2];
437 *(
int *)(b + f->
ofs) = atoi(value);
440 *(
float *)(b + f->
ofs) = atof(value);
444 ((
float *)(b + f->
ofs))[0] = 0;
445 ((
float *)(b + f->
ofs))[1] = v;
446 ((
float *)(b + f->
ofs))[2] = 0;
Referenced by ED_ParseEdict().
◆ G_FindTeams()
Definition at line 521 of file g_spawn.c.
523 edict_t *e, *e2, *chain;
540 for (j = i + 1, e2 = e + 1 ; j <
globals.num_edicts ; j++, e2++) {
547 if (!strcmp(e->team, e2->team)) {
549 chain->teamchain = e2;
557 gi.dprintf(
"%i teams with %i entities\n",
c, c2);
Referenced by SpawnEntities().
◆ SP_func_areaportal()
void SP_func_areaportal |
( |
edict_t * |
ent | ) |
|
◆ SP_func_button()
void SP_func_button |
( |
edict_t * |
ent | ) |
|
Definition at line 726 of file g_func.c.
733 ent->solid = SOLID_BSP;
734 gi.setmodel(ent, ent->model);
736 if (ent->sounds != 1)
737 ent->moveinfo.sound_start =
gi.soundindex(
"switches/butn2.wav");
742 ent->accel = ent->speed;
744 ent->decel = ent->speed;
751 VectorCopy(ent->s.origin, ent->pos1);
752 abs_movedir[0] = fabs(ent->movedir[0]);
753 abs_movedir[1] = fabs(ent->movedir[1]);
754 abs_movedir[2] = fabs(ent->movedir[2]);
755 dist = abs_movedir[0] * ent->size[0] + abs_movedir[1] * ent->size[1] + abs_movedir[2] * ent->size[2] -
st.
lip;
756 VectorMA(ent->pos1, dist, ent->movedir, ent->pos2);
759 ent->s.effects |= EF_ANIM01;
762 ent->max_health = ent->health;
765 }
else if (! ent->targetname)
770 ent->moveinfo.speed = ent->speed;
771 ent->moveinfo.accel = ent->accel;
772 ent->moveinfo.decel = ent->decel;
773 ent->moveinfo.wait = ent->wait;
774 VectorCopy(ent->pos1, ent->moveinfo.start_origin);
775 VectorCopy(ent->s.angles, ent->moveinfo.start_angles);
776 VectorCopy(ent->pos2, ent->moveinfo.end_origin);
777 VectorCopy(ent->s.angles, ent->moveinfo.end_angles);
◆ SP_func_clock()
void SP_func_clock |
( |
edict_t * |
ent | ) |
|
Definition at line 1670 of file g_misc.c.
1672 if (!self->target) {
1673 gi.dprintf(
"%s with no target at %s\n", self->classname,
vtos(self->s.origin));
1678 if ((self->spawnflags & 2) && (!self->count)) {
1679 gi.dprintf(
"%s with no count at %s\n", self->classname,
vtos(self->s.origin));
1684 if ((self->spawnflags & 1) && (!self->count))
1685 self->count = 60 * 60;;
1693 if (self->spawnflags & 4)
◆ SP_func_conveyor()
void SP_func_conveyor |
( |
edict_t * |
self | ) |
|
Definition at line 1734 of file g_func.c.
1739 if (!(self->spawnflags & 1)) {
1740 self->count =
self->speed;
1746 gi.setmodel(
self, self->model);
1747 self->solid = SOLID_BSP;
1748 gi.linkentity(
self);
◆ SP_func_door()
void SP_func_door |
( |
edict_t * |
ent | ) |
|
Definition at line 1078 of file g_func.c.
1082 if (ent->sounds != 1) {
1083 ent->moveinfo.sound_start =
gi.soundindex(
"doors/dr1_strt.wav");
1084 ent->moveinfo.sound_middle =
gi.soundindex(
"doors/dr1_mid.wav");
1085 ent->moveinfo.sound_end =
gi.soundindex(
"doors/dr1_end.wav");
1090 ent->solid = SOLID_BSP;
1091 gi.setmodel(ent, ent->model);
1102 ent->accel = ent->speed;
1104 ent->decel = ent->speed;
1114 VectorCopy(ent->s.origin, ent->pos1);
1115 abs_movedir[0] = fabs(ent->movedir[0]);
1116 abs_movedir[1] = fabs(ent->movedir[1]);
1117 abs_movedir[2] = fabs(ent->movedir[2]);
1118 ent->moveinfo.distance = abs_movedir[0] * ent->size[0] + abs_movedir[1] * ent->size[1] + abs_movedir[2] * ent->size[2] -
st.
lip;
1119 VectorMA(ent->pos1, ent->moveinfo.distance, ent->movedir, ent->pos2);
1123 VectorCopy(ent->pos2, ent->s.origin);
1124 VectorCopy(ent->pos1, ent->pos2);
1125 VectorCopy(ent->s.origin, ent->pos1);
1133 ent->max_health = ent->health;
1134 }
else if (ent->targetname && ent->message) {
1135 gi.soundindex(
"misc/talk.wav");
1139 ent->moveinfo.speed = ent->speed;
1140 ent->moveinfo.accel = ent->accel;
1141 ent->moveinfo.decel = ent->decel;
1142 ent->moveinfo.wait = ent->wait;
1143 VectorCopy(ent->pos1, ent->moveinfo.start_origin);
1144 VectorCopy(ent->s.angles, ent->moveinfo.start_angles);
1145 VectorCopy(ent->pos2, ent->moveinfo.end_origin);
1146 VectorCopy(ent->s.angles, ent->moveinfo.end_angles);
1148 if (ent->spawnflags & 16)
1149 ent->s.effects |= EF_ANIM_ALL;
1150 if (ent->spawnflags & 64)
1151 ent->s.effects |= EF_ANIM_ALLFAST;
1155 ent->teammaster = ent;
1160 if (ent->health || ent->targetname)
◆ SP_func_door_rotating()
void SP_func_door_rotating |
( |
edict_t * |
ent | ) |
|
Definition at line 1196 of file g_func.c.
1198 VectorClear(ent->s.angles);
1201 VectorClear(ent->movedir);
1203 ent->movedir[2] = 1.0;
1205 ent->movedir[0] = 1.0;
1207 ent->movedir[1] = 1.0;
1211 VectorNegate(ent->movedir, ent->movedir);
1214 gi.dprintf(
"%s at %s with no distance set\n", ent->classname,
vtos(ent->s.origin));
1218 VectorCopy(ent->s.angles, ent->pos1);
1219 VectorMA(ent->s.angles,
st.
distance, ent->movedir, ent->pos2);
1223 ent->solid = SOLID_BSP;
1224 gi.setmodel(ent, ent->model);
1232 ent->accel = ent->speed;
1234 ent->decel = ent->speed;
1241 if (ent->sounds != 1) {
1242 ent->moveinfo.sound_start =
gi.soundindex(
"doors/dr1_strt.wav");
1243 ent->moveinfo.sound_middle =
gi.soundindex(
"doors/dr1_mid.wav");
1244 ent->moveinfo.sound_end =
gi.soundindex(
"doors/dr1_end.wav");
1249 VectorCopy(ent->pos2, ent->s.angles);
1250 VectorCopy(ent->pos1, ent->pos2);
1251 VectorCopy(ent->s.angles, ent->pos1);
1252 VectorNegate(ent->movedir, ent->movedir);
1258 ent->max_health = ent->health;
1261 if (ent->targetname && ent->message) {
1262 gi.soundindex(
"misc/talk.wav");
1267 ent->moveinfo.speed = ent->speed;
1268 ent->moveinfo.accel = ent->accel;
1269 ent->moveinfo.decel = ent->decel;
1270 ent->moveinfo.wait = ent->wait;
1271 VectorCopy(ent->s.origin, ent->moveinfo.start_origin);
1272 VectorCopy(ent->pos1, ent->moveinfo.start_angles);
1273 VectorCopy(ent->s.origin, ent->moveinfo.end_origin);
1274 VectorCopy(ent->pos2, ent->moveinfo.end_angles);
1276 if (ent->spawnflags & 16)
1277 ent->s.effects |= EF_ANIM_ALL;
1281 ent->teammaster = ent;
1286 if (ent->health || ent->targetname)
◆ SP_func_door_secret()
void SP_func_door_secret |
( |
edict_t * |
ent | ) |
|
Definition at line 1855 of file g_func.c.
1862 ent->moveinfo.sound_start =
gi.soundindex(
"doors/dr1_strt.wav");
1863 ent->moveinfo.sound_middle =
gi.soundindex(
"doors/dr1_mid.wav");
1864 ent->moveinfo.sound_end =
gi.soundindex(
"doors/dr1_end.wav");
1867 ent->solid = SOLID_BSP;
1868 gi.setmodel(ent, ent->model);
1885 ent->moveinfo.accel =
1886 ent->moveinfo.decel =
1887 ent->moveinfo.speed = 50;
1891 VectorClear(ent->s.angles);
1894 width = fabs(DotProduct(
up, ent->size));
1897 length = fabs(DotProduct(
forward, ent->size));
1899 VectorMA(ent->s.origin, -1 *
width,
up, ent->pos1);
1901 VectorMA(ent->s.origin, side *
width,
right, ent->pos1);
1902 VectorMA(ent->pos1, length,
forward, ent->pos2);
1907 ent->max_health = ent->health;
1908 }
else if (ent->targetname && ent->message) {
1909 gi.soundindex(
"misc/talk.wav");
1913 ent->classname =
"func_door";
◆ SP_func_explosive()
void SP_func_explosive |
( |
edict_t * |
self | ) |
|
Definition at line 771 of file g_misc.c.
781 gi.modelindex(
"models/objects/debris1/tris.md2");
782 gi.modelindex(
"models/objects/debris2/tris.md2");
784 gi.setmodel(
self, self->model);
786 if (self->spawnflags & 1) {
787 self->svflags |= SVF_NOCLIENT;
788 self->solid = SOLID_NOT;
791 self->solid = SOLID_BSP;
792 if (self->targetname)
796 if (self->spawnflags & 2)
797 self->s.effects |= EF_ANIM_ALL;
798 if (self->spawnflags & 4)
799 self->s.effects |= EF_ANIM_ALLFAST;
◆ SP_func_killbox()
void SP_func_killbox |
( |
edict_t * |
ent | ) |
|
Definition at line 1927 of file g_func.c.
1929 gi.setmodel(ent, ent->model);
1931 ent->svflags = SVF_NOCLIENT;
◆ SP_func_object()
void SP_func_object |
( |
edict_t * |
self | ) |
|
Definition at line 646 of file g_misc.c.
648 gi.setmodel(
self, self->model);
660 if (self->spawnflags == 0) {
661 self->solid = SOLID_BSP;
666 self->solid = SOLID_NOT;
669 self->svflags |= SVF_NOCLIENT;
672 if (self->spawnflags & 2)
673 self->s.effects |= EF_ANIM_ALL;
674 if (self->spawnflags & 4)
675 self->s.effects |= EF_ANIM_ALLFAST;
677 self->clipmask = MASK_MONSTERSOLID;
◆ SP_func_plat()
void SP_func_plat |
( |
edict_t * |
ent | ) |
|
Definition at line 483 of file g_func.c.
485 VectorClear(ent->s.angles);
486 ent->solid = SOLID_BSP;
489 gi.setmodel(ent, ent->model);
515 VectorCopy(ent->s.origin, ent->pos1);
516 VectorCopy(ent->s.origin, ent->pos2);
520 ent->pos2[2] -= (ent->maxs[2] - ent->mins[2]) -
st.
lip;
526 if (ent->targetname) {
529 VectorCopy(ent->pos2, ent->s.origin);
534 ent->moveinfo.speed = ent->speed;
535 ent->moveinfo.accel = ent->accel;
536 ent->moveinfo.decel = ent->decel;
537 ent->moveinfo.wait = ent->wait;
538 VectorCopy(ent->pos1, ent->moveinfo.start_origin);
539 VectorCopy(ent->s.angles, ent->moveinfo.start_angles);
540 VectorCopy(ent->pos2, ent->moveinfo.end_origin);
541 VectorCopy(ent->s.angles, ent->moveinfo.end_angles);
543 ent->moveinfo.sound_start =
gi.soundindex(
"plats/pt1_strt.wav");
544 ent->moveinfo.sound_middle =
gi.soundindex(
"plats/pt1_mid.wav");
545 ent->moveinfo.sound_end =
gi.soundindex(
"plats/pt1_end.wav");
◆ SP_func_rotating()
void SP_func_rotating |
( |
edict_t * |
ent | ) |
|
Definition at line 587 of file g_func.c.
589 ent->solid = SOLID_BSP;
590 if (ent->spawnflags & 32)
596 VectorClear(ent->movedir);
597 if (ent->spawnflags & 4)
598 ent->movedir[2] = 1.0;
599 else if (ent->spawnflags & 8)
600 ent->movedir[0] = 1.0;
602 ent->movedir[1] = 1.0;
605 if (ent->spawnflags & 2)
606 VectorNegate(ent->movedir, ent->movedir);
619 if (ent->spawnflags & 1)
620 ent->use(ent, NULL, NULL);
622 if (ent->spawnflags & 64)
623 ent->s.effects |= EF_ANIM_ALL;
624 if (ent->spawnflags & 128)
625 ent->s.effects |= EF_ANIM_ALLFAST;
627 gi.setmodel(ent, ent->model);
◆ SP_func_timer()
void SP_func_timer |
( |
edict_t * |
self | ) |
|
Definition at line 1692 of file g_func.c.
1700 if (self->random >= self->wait) {
1702 gi.dprintf(
"func_timer at %s has random >= wait\n",
vtos(self->s.origin));
1705 if (self->spawnflags & 1) {
1707 self->activator =
self;
1710 self->svflags = SVF_NOCLIENT;
◆ SP_func_train()
void SP_func_train |
( |
edict_t * |
ent | ) |
|
Definition at line 1562 of file g_func.c.
1566 VectorClear(self->s.angles);
1574 self->solid = SOLID_BSP;
1575 gi.setmodel(
self, self->model);
1578 self->moveinfo.sound_middle =
gi.soundindex(
st.
noise);
1583 self->moveinfo.speed =
self->speed;
1584 self->moveinfo.accel =
self->moveinfo.decel =
self->moveinfo.speed;
1588 gi.linkentity(
self);
1596 gi.dprintf(
"func_train without a target at %s\n",
vtos(self->absmin));
◆ SP_func_wall()
void SP_func_wall |
( |
edict_t * |
self | ) |
|
Definition at line 573 of file g_misc.c.
576 gi.setmodel(
self, self->model);
578 if (self->spawnflags & 8)
579 self->s.effects |= EF_ANIM_ALL;
580 if (self->spawnflags & 16)
581 self->s.effects |= EF_ANIM_ALLFAST;
584 if ((self->spawnflags & 7) == 0) {
585 self->solid = SOLID_BSP;
591 if (!(self->spawnflags & 1)) {
593 self->spawnflags |= 1;
597 if (self->spawnflags & 4) {
598 if (!(self->spawnflags & 2)) {
599 gi.dprintf(
"func_wall START_ON without TOGGLE\n");
600 self->spawnflags |= 2;
605 if (self->spawnflags & 4) {
606 self->solid = SOLID_BSP;
608 self->solid = SOLID_NOT;
609 self->svflags |= SVF_NOCLIENT;
◆ SP_func_water()
void SP_func_water |
( |
edict_t * |
ent | ) |
|
Definition at line 1308 of file g_func.c.
1314 self->solid = SOLID_BSP;
1315 gi.setmodel(
self, self->model);
1317 switch (self->sounds) {
1322 self->moveinfo.sound_start =
gi.soundindex(
"world/mov_watr.wav");
1323 self->moveinfo.sound_end =
gi.soundindex(
"world/stp_watr.wav");
1327 self->moveinfo.sound_start =
gi.soundindex(
"world/mov_watr.wav");
1328 self->moveinfo.sound_end =
gi.soundindex(
"world/stp_watr.wav");
1333 VectorCopy(self->s.origin, self->pos1);
1334 abs_movedir[0] = fabs(self->movedir[0]);
1335 abs_movedir[1] = fabs(self->movedir[1]);
1336 abs_movedir[2] = fabs(self->movedir[2]);
1337 self->moveinfo.distance = abs_movedir[0] *
self->size[0] + abs_movedir[1] *
self->size[1] + abs_movedir[2] *
self->size[2] -
st.
lip;
1338 VectorMA(self->pos1, self->moveinfo.distance, self->movedir, self->pos2);
1342 VectorCopy(self->pos2, self->s.origin);
1343 VectorCopy(self->pos1, self->pos2);
1344 VectorCopy(self->s.origin, self->pos1);
1347 VectorCopy(self->pos1, self->moveinfo.start_origin);
1348 VectorCopy(self->s.angles, self->moveinfo.start_angles);
1349 VectorCopy(self->pos2, self->moveinfo.end_origin);
1350 VectorCopy(self->s.angles, self->moveinfo.end_angles);
1356 self->moveinfo.accel =
self->moveinfo.decel =
self->moveinfo.speed =
self->speed;
1360 self->moveinfo.wait =
self->wait;
1364 if (self->wait == -1)
1367 self->classname =
"func_door";
1369 gi.linkentity(
self);
◆ SP_info_notnull()
void SP_info_notnull |
( |
edict_t * |
self | ) |
|
Definition at line 497 of file g_misc.c.
499 VectorCopy(self->s.origin, self->absmin);
500 VectorCopy(self->s.origin, self->absmax);
◆ SP_info_null()
void SP_info_null |
( |
edict_t * |
self | ) |
|
◆ SP_info_player_coop()
void SP_info_player_coop |
( |
edict_t * |
ent | ) |
|
◆ SP_info_player_deathmatch()
void SP_info_player_deathmatch |
( |
edict_t * |
ent | ) |
|
◆ SP_info_player_intermission()
void SP_info_player_intermission |
( |
edict_t * |
ent | ) |
|
◆ SP_info_player_start()
void SP_info_player_start |
( |
edict_t * |
ent | ) |
|
◆ SP_item_health()
void SP_item_health |
( |
edict_t * |
self | ) |
|
Definition at line 2071 of file g_items.c.
2078 self->model =
"models/items/healing/medium/tris.md2";
2081 gi.soundindex(
"items/n_health.wav");
◆ SP_item_health_large()
void SP_item_health_large |
( |
edict_t * |
self | ) |
|
Definition at line 2102 of file g_items.c.
2109 self->model =
"models/items/healing/large/tris.md2";
2112 gi.soundindex(
"items/l_health.wav");
◆ SP_item_health_mega()
void SP_item_health_mega |
( |
edict_t * |
self | ) |
|
Definition at line 2117 of file g_items.c.
2124 self->model =
"models/items/mega_h/tris.md2";
2127 gi.soundindex(
"items/m_health.wav");
◆ SP_item_health_small()
void SP_item_health_small |
( |
edict_t * |
self | ) |
|
Definition at line 2086 of file g_items.c.
2093 self->model =
"models/items/healing/stimpack/tris.md2";
2097 gi.soundindex(
"items/s_health.wav");
◆ SP_light()
void SP_light |
( |
edict_t * |
self | ) |
|
Definition at line 525 of file g_misc.c.
533 if (self->style >= 32) {
536 gi.configstring(CS_LIGHTS + self->style,
"a");
538 gi.configstring(CS_LIGHTS + self->style,
"m");
◆ SP_light_mine1()
void SP_light_mine1 |
( |
edict_t * |
ent | ) |
|
Definition at line 1411 of file g_misc.c.
1414 ent->solid = SOLID_BBOX;
1415 ent->s.modelindex =
gi.modelindex(
"models/objects/minelite/light1/tris.md2");
◆ SP_light_mine2()
void SP_light_mine2 |
( |
edict_t * |
ent | ) |
|
Definition at line 1422 of file g_misc.c.
1425 ent->solid = SOLID_BBOX;
1426 ent->s.modelindex =
gi.modelindex(
"models/objects/minelite/light2/tris.md2");
◆ SP_misc_actor()
void SP_misc_actor |
( |
edict_t * |
self | ) |
|
Definition at line 399 of file m_actor.c.
406 if (!self->targetname) {
407 gi.dprintf(
"untargeted %s at %s\n", self->classname,
vtos(self->s.origin));
413 gi.dprintf(
"%s with no target at %s\n", self->classname,
vtos(self->s.origin));
419 self->solid = SOLID_BBOX;
420 self->s.modelindex =
gi.modelindex(
"players/male/tris.md2");
421 VectorSet(self->mins, -16, -16, -24);
422 VectorSet(self->maxs, 16, 16, 32);
435 self->monsterinfo.melee = NULL;
436 self->monsterinfo.sight = NULL;
◆ SP_misc_banner()
void SP_misc_banner |
( |
edict_t * |
self | ) |
|
Definition at line 1142 of file g_misc.c.
1145 ent->solid = SOLID_NOT;
1146 ent->s.modelindex =
gi.modelindex(
"models/objects/banner/tris.md2");
1147 ent->s.frame = rand() % 16;
◆ SP_misc_bigviper()
void SP_misc_bigviper |
( |
edict_t * |
self | ) |
|
Definition at line 1255 of file g_misc.c.
1258 ent->solid = SOLID_BBOX;
1259 VectorSet(ent->mins, -176, -120, -24);
1260 VectorSet(ent->maxs, 176, 120, 72);
1261 ent->s.modelindex =
gi.modelindex(
"models/ships/bigviper/tris.md2");
◆ SP_misc_blackhole()
void SP_misc_blackhole |
( |
edict_t * |
self | ) |
|
Definition at line 986 of file g_misc.c.
989 ent->solid = SOLID_NOT;
990 VectorSet(ent->mins, -64, -64, 0);
991 VectorSet(ent->maxs, 64, 64, 8);
992 ent->s.modelindex =
gi.modelindex(
"models/objects/black/tris.md2");
993 ent->s.renderfx = RF_TRANSLUCENT;
◆ SP_misc_deadsoldier()
void SP_misc_deadsoldier |
( |
edict_t * |
self | ) |
|
Definition at line 1170 of file g_misc.c.
1179 ent->solid = SOLID_BBOX;
1180 ent->s.modelindex =
gi.modelindex(
"models/deadbods/dude/tris.md2");
1183 if (ent->spawnflags & 2)
1185 else if (ent->spawnflags & 4)
1187 else if (ent->spawnflags & 8)
1189 else if (ent->spawnflags & 16)
1191 else if (ent->spawnflags & 32)
1196 VectorSet(ent->mins, -16, -16, 0);
1197 VectorSet(ent->maxs, 16, 16, 16);
1200 ent->svflags |= SVF_MONSTER | SVF_DEADMONSTER;
◆ SP_misc_easterchick()
void SP_misc_easterchick |
( |
edict_t * |
self | ) |
|
Definition at line 1040 of file g_misc.c.
1043 ent->solid = SOLID_BBOX;
1044 VectorSet(ent->mins, -32, -32, 0);
1045 VectorSet(ent->maxs, 32, 32, 32);
1046 ent->s.modelindex =
gi.modelindex(
"models/monsters/bitch/tris.md2");
◆ SP_misc_easterchick2()
void SP_misc_easterchick2 |
( |
edict_t * |
self | ) |
|
Definition at line 1067 of file g_misc.c.
1070 ent->solid = SOLID_BBOX;
1071 VectorSet(ent->mins, -32, -32, 0);
1072 VectorSet(ent->maxs, 32, 32, 32);
1073 ent->s.modelindex =
gi.modelindex(
"models/monsters/bitch/tris.md2");
◆ SP_misc_eastertank()
void SP_misc_eastertank |
( |
edict_t * |
self | ) |
|
Definition at line 1013 of file g_misc.c.
1016 ent->solid = SOLID_BBOX;
1017 VectorSet(ent->mins, -32, -32, -16);
1018 VectorSet(ent->maxs, 32, 32, 32);
1019 ent->s.modelindex =
gi.modelindex(
"models/monsters/tank/tris.md2");
◆ SP_misc_explobox()
void SP_misc_explobox |
( |
edict_t * |
self | ) |
|
Definition at line 918 of file g_misc.c.
926 gi.modelindex(
"models/objects/debris1/tris.md2");
927 gi.modelindex(
"models/objects/debris2/tris.md2");
928 gi.modelindex(
"models/objects/debris3/tris.md2");
930 self->solid = SOLID_BBOX;
933 self->model =
"models/objects/barrels/tris.md2";
934 self->s.modelindex =
gi.modelindex(self->model);
935 VectorSet(self->mins, -16, -16, 0);
936 VectorSet(self->maxs, 16, 16, 40);
◆ SP_misc_gib_arm()
void SP_misc_gib_arm |
( |
edict_t * |
self | ) |
|
Definition at line 1434 of file g_misc.c.
1436 gi.setmodel(ent,
"models/objects/gibs/arm/tris.md2");
1437 ent->solid = SOLID_NOT;
1438 ent->s.effects |= EF_GIB;
1442 ent->svflags |= SVF_MONSTER;
1444 ent->avelocity[0] =
random() * 200;
1445 ent->avelocity[1] =
random() * 200;
1446 ent->avelocity[2] =
random() * 200;
◆ SP_misc_gib_head()
void SP_misc_gib_head |
( |
edict_t * |
self | ) |
|
Definition at line 1476 of file g_misc.c.
1478 gi.setmodel(ent,
"models/objects/gibs/head/tris.md2");
1479 ent->solid = SOLID_NOT;
1480 ent->s.effects |= EF_GIB;
1484 ent->svflags |= SVF_MONSTER;
1486 ent->avelocity[0] =
random() * 200;
1487 ent->avelocity[1] =
random() * 200;
1488 ent->avelocity[2] =
random() * 200;
◆ SP_misc_gib_leg()
void SP_misc_gib_leg |
( |
edict_t * |
self | ) |
|
Definition at line 1455 of file g_misc.c.
1457 gi.setmodel(ent,
"models/objects/gibs/leg/tris.md2");
1458 ent->solid = SOLID_NOT;
1459 ent->s.effects |= EF_GIB;
1463 ent->svflags |= SVF_MONSTER;
1465 ent->avelocity[0] =
random() * 200;
1466 ent->avelocity[1] =
random() * 200;
1467 ent->avelocity[2] =
random() * 200;
◆ SP_misc_insane()
void SP_misc_insane |
( |
edict_t * |
self | ) |
|
Definition at line 589 of file m_insane.c.
611 self->solid = SOLID_BBOX;
612 self->s.modelindex =
gi.modelindex(
"models/monsters/insane/tris.md2");
614 VectorSet(self->mins, -16, -16, -24);
615 VectorSet(self->maxs, 16, 16, 32);
618 self->gib_health = -50;
627 self->monsterinfo.dodge = NULL;
628 self->monsterinfo.attack = NULL;
629 self->monsterinfo.melee = NULL;
630 self->monsterinfo.sight = NULL;
641 if (self->spawnflags & 16)
648 if (self->spawnflags & 8) {
649 VectorSet(self->mins, -16, 0, 0);
650 VectorSet(self->maxs, 16, 8, 32);
655 self->s.skinnum = rand() % 3;
◆ SP_misc_satellite_dish()
void SP_misc_satellite_dish |
( |
edict_t * |
self | ) |
|
Definition at line 1397 of file g_misc.c.
1400 ent->solid = SOLID_BBOX;
1401 VectorSet(ent->mins, -64, -64, 0);
1402 VectorSet(ent->maxs, 64, 64, 128);
1403 ent->s.modelindex =
gi.modelindex(
"models/objects/satellite/tris.md2");
◆ SP_misc_strogg_ship()
void SP_misc_strogg_ship |
( |
edict_t * |
self | ) |
|
Definition at line 1354 of file g_misc.c.
1357 gi.dprintf(
"%s without a target at %s\n", ent->classname,
vtos(ent->absmin));
1366 ent->solid = SOLID_NOT;
1367 ent->s.modelindex =
gi.modelindex(
"models/ships/strogg1/tris.md2");
1368 VectorSet(ent->mins, -16, -16, 0);
1369 VectorSet(ent->maxs, 16, 16, 32);
1374 ent->svflags |= SVF_NOCLIENT;
1375 ent->moveinfo.accel = ent->moveinfo.decel = ent->moveinfo.speed = ent->speed;
◆ SP_misc_teleporter()
void SP_misc_teleporter |
( |
edict_t * |
self | ) |
|
Definition at line 1748 of file g_misc.c.
1753 gi.dprintf(
"teleporter without a target.\n");
1758 gi.setmodel(ent,
"models/objects/dmspot/tris.md2");
1760 ent->s.effects = EF_TELEPORTER;
1761 ent->s.sound =
gi.soundindex(
"world/amb10.wav");
1762 ent->solid = SOLID_BBOX;
1764 VectorSet(ent->mins, -32, -32, -24);
1765 VectorSet(ent->maxs, 32, 32, -16);
1770 trig->solid = SOLID_TRIGGER;
1771 trig->target = ent->target;
1773 VectorCopy(ent->s.origin, trig->s.origin);
1774 VectorSet(trig->mins, -8, -8, 8);
1775 VectorSet(trig->maxs, 8, 8, 24);
1776 gi.linkentity(trig);
◆ SP_misc_teleporter_dest()
void SP_misc_teleporter_dest |
( |
edict_t * |
self | ) |
|
Definition at line 1783 of file g_misc.c.
1785 gi.setmodel(ent,
"models/objects/dmspot/tris.md2");
1787 ent->solid = SOLID_BBOX;
1789 VectorSet(ent->mins, -32, -32, -24);
1790 VectorSet(ent->maxs, 32, 32, -16);
◆ SP_misc_viper()
void SP_misc_viper |
( |
edict_t * |
self | ) |
|
Definition at line 1225 of file g_misc.c.
1228 gi.dprintf(
"misc_viper without a target at %s\n",
vtos(ent->absmin));
1237 ent->solid = SOLID_NOT;
1238 ent->s.modelindex =
gi.modelindex(
"models/ships/viper/tris.md2");
1239 VectorSet(ent->mins, -16, -16, 0);
1240 VectorSet(ent->maxs, 16, 16, 32);
1245 ent->svflags |= SVF_NOCLIENT;
1246 ent->moveinfo.accel = ent->moveinfo.decel = ent->moveinfo.speed = ent->speed;
◆ SP_misc_viper_bomb()
void SP_misc_viper_bomb |
( |
edict_t * |
self | ) |
|
Definition at line 1317 of file g_misc.c.
1320 self->solid = SOLID_NOT;
1321 VectorSet(self->mins, -8, -8, -8);
1322 VectorSet(self->maxs, 8, 8, 8);
1324 self->s.modelindex =
gi.modelindex(
"models/objects/bomb/tris.md2");
1330 self->svflags |= SVF_NOCLIENT;
1332 gi.linkentity(
self);
◆ SP_monster_berserk()
void SP_monster_berserk |
( |
edict_t * |
self | ) |
|
Definition at line 399 of file m_berserk.c.
414 self->s.modelindex =
gi.modelindex(
"models/monsters/berserk/tris.md2");
415 VectorSet(self->mins, -16, -16, -24);
416 VectorSet(self->maxs, 16, 16, 32);
418 self->solid = SOLID_BBOX;
421 self->gib_health = -60;
430 self->monsterinfo.dodge = NULL;
431 self->monsterinfo.attack = NULL;
◆ SP_monster_boss2()
void SP_monster_boss2 |
( |
edict_t * |
self | ) |
|
Definition at line 599 of file m_boss2.c.
612 self->s.sound =
gi.soundindex(
"bosshovr/bhvengn1.wav");
615 self->solid = SOLID_BBOX;
616 self->s.modelindex =
gi.modelindex(
"models/monsters/boss2/tris.md2");
617 VectorSet(self->mins, -56, -56, 0);
618 VectorSet(self->maxs, 56, 56, 80);
621 self->gib_health = -200;
◆ SP_monster_boss3_stand()
void SP_monster_boss3_stand |
( |
edict_t * |
self | ) |
|
Definition at line 51 of file m_boss3.c.
59 self->solid = SOLID_BBOX;
60 self->model =
"models/monsters/boss3/rider/tris.md2";
61 self->s.modelindex =
gi.modelindex(self->model);
64 gi.soundindex(
"misc/bigtele.wav");
66 VectorSet(self->mins, -32, -32, 0);
67 VectorSet(self->maxs, 32, 32, 90);
◆ SP_monster_brain()
void SP_monster_brain |
( |
edict_t * |
self | ) |
|
Definition at line 594 of file m_brain.c.
616 self->solid = SOLID_BBOX;
617 self->s.modelindex =
gi.modelindex(
"models/monsters/brain/tris.md2");
618 VectorSet(self->mins, -16, -16, -24);
619 VectorSet(self->maxs, 16, 16, 32);
622 self->gib_health = -150;
639 self->monsterinfo.power_armor_power = 100;
◆ SP_monster_chick()
void SP_monster_chick |
( |
edict_t * |
self | ) |
|
Definition at line 594 of file m_chick.c.
618 self->solid = SOLID_BBOX;
619 self->s.modelindex =
gi.modelindex(
"models/monsters/bitch/tris.md2");
620 VectorSet(self->mins, -16, -16, 0);
621 VectorSet(self->maxs, 16, 16, 56);
624 self->gib_health = -70;
◆ SP_monster_commander_body()
void SP_monster_commander_body |
( |
edict_t * |
self | ) |
|
Definition at line 1110 of file g_misc.c.
1113 self->solid = SOLID_BBOX;
1114 self->model =
"models/monsters/commandr/tris.md2";
1115 self->s.modelindex =
gi.modelindex(self->model);
1116 VectorSet(self->mins, -32, -32, 0);
1117 VectorSet(self->maxs, 32, 32, 48);
1121 self->s.renderfx |= RF_FRAMELERP;
1122 gi.linkentity(
self);
1124 gi.soundindex(
"tank/thud.wav");
1125 gi.soundindex(
"tank/pain.wav");
◆ SP_monster_flipper()
void SP_monster_flipper |
( |
edict_t * |
self | ) |
|
Definition at line 346 of file m_flipper.c.
363 self->solid = SOLID_BBOX;
364 self->s.modelindex =
gi.modelindex(
"models/monsters/flipper/tris.md2");
365 VectorSet(self->mins, -16, -16, 0);
366 VectorSet(self->maxs, 16, 16, 32);
369 self->gib_health = -30;
◆ SP_monster_floater()
void SP_monster_floater |
( |
edict_t * |
self | ) |
|
Definition at line 594 of file m_float.c.
609 gi.soundindex(
"floater/fltatck1.wav");
611 self->s.sound =
gi.soundindex(
"floater/fltsrch1.wav");
614 self->solid = SOLID_BBOX;
615 self->s.modelindex =
gi.modelindex(
"models/monsters/float/tris.md2");
616 VectorSet(self->mins, -24, -24, -24);
617 VectorSet(self->maxs, 24, 24, 32);
620 self->gib_health = -80;
◆ SP_monster_flyer()
void SP_monster_flyer |
( |
edict_t * |
self | ) |
|
Definition at line 549 of file m_flyer.c.
557 if (!Q_stricmp(
level.
mapname,
"jail5") && (self->s.origin[2] == -104)) {
558 self->targetname =
self->target;
570 gi.soundindex(
"flyer/flyatck3.wav");
572 self->s.modelindex =
gi.modelindex(
"models/monsters/flyer/tris.md2");
573 VectorSet(self->mins, -16, -16, -24);
574 VectorSet(self->maxs, 16, 16, 32);
576 self->solid = SOLID_BBOX;
578 self->s.sound =
gi.soundindex(
"flyer/flyidle1.wav");
◆ SP_monster_gladiator()
void SP_monster_gladiator |
( |
edict_t * |
self | ) |
|
Definition at line 327 of file m_gladiator.c.
337 sound_die =
gi.soundindex(
"gladiator/glddeth2.wav");
338 sound_gun =
gi.soundindex(
"gladiator/railgun.wav");
347 self->solid = SOLID_BBOX;
348 self->s.modelindex =
gi.modelindex(
"models/monsters/gladiatr/tris.md2");
349 VectorSet(self->mins, -32, -32, -24);
350 VectorSet(self->maxs, 32, 32, 64);
353 self->gib_health = -175;
362 self->monsterinfo.dodge = NULL;
◆ SP_monster_gunner()
void SP_monster_gunner |
( |
edict_t * |
self | ) |
|
Definition at line 559 of file m_gunner.c.
574 gi.soundindex(
"gunner/gunatck2.wav");
575 gi.soundindex(
"gunner/gunatck3.wav");
578 self->solid = SOLID_BBOX;
579 self->s.modelindex =
gi.modelindex(
"models/monsters/gunner/tris.md2");
580 VectorSet(self->mins, -16, -16, -24);
581 VectorSet(self->maxs, 16, 16, 32);
584 self->gib_health = -70;
595 self->monsterinfo.melee = NULL;
◆ SP_monster_hover()
void SP_monster_hover |
( |
edict_t * |
self | ) |
|
Definition at line 546 of file m_hover.c.
561 gi.soundindex(
"hover/hovatck1.wav");
563 self->s.sound =
gi.soundindex(
"hover/hovidle1.wav");
566 self->solid = SOLID_BBOX;
567 self->s.modelindex =
gi.modelindex(
"models/monsters/hover/tris.md2");
568 VectorSet(self->mins, -24, -24, -24);
569 VectorSet(self->maxs, 24, 24, 32);
572 self->gib_health = -100;
◆ SP_monster_infantry()
void SP_monster_infantry |
( |
edict_t * |
self | ) |
|
Definition at line 526 of file m_infantry.c.
549 self->solid = SOLID_BBOX;
550 self->s.modelindex =
gi.modelindex(
"models/monsters/infantry/tris.md2");
551 VectorSet(self->mins, -16, -16, -24);
552 VectorSet(self->maxs, 16, 16, 32);
555 self->gib_health = -40;
566 self->monsterinfo.melee = NULL;
◆ SP_monster_jorg()
void SP_monster_jorg |
( |
edict_t * |
self | ) |
|
Definition at line 649 of file m_boss31.c.
674 self->solid = SOLID_BBOX;
675 self->s.modelindex =
gi.modelindex(
"models/monsters/boss3/rider/tris.md2");
676 self->s.modelindex2 =
gi.modelindex(
"models/monsters/boss3/jorg/tris.md2");
677 VectorSet(self->mins, -80, -80, 0);
678 VectorSet(self->maxs, 80, 80, 140);
681 self->gib_health = -2000;
689 self->monsterinfo.dodge = NULL;
692 self->monsterinfo.melee = NULL;
693 self->monsterinfo.sight = NULL;
◆ SP_monster_medic()
void SP_monster_medic |
( |
edict_t * |
self | ) |
|
Definition at line 686 of file m_medic.c.
704 gi.soundindex(
"medic/medatck1.wav");
707 self->solid = SOLID_BBOX;
708 self->s.modelindex =
gi.modelindex(
"models/monsters/medic/tris.md2");
709 VectorSet(self->mins, -24, -24, -24);
710 VectorSet(self->maxs, 24, 24, 32);
713 self->gib_health = -130;
724 self->monsterinfo.melee = NULL;
◆ SP_monster_mutant()
void SP_monster_mutant |
( |
edict_t * |
self | ) |
|
Definition at line 582 of file m_mutant.c.
604 self->solid = SOLID_BBOX;
605 self->s.modelindex =
gi.modelindex(
"models/monsters/mutant/tris.md2");
606 VectorSet(self->mins, -32, -32, -24);
607 VectorSet(self->maxs, 32, 32, 48);
610 self->gib_health = -120;
619 self->monsterinfo.dodge = NULL;
◆ SP_monster_parasite()
void SP_monster_parasite |
( |
edict_t * |
self | ) |
|
Definition at line 484 of file m_parasite.c.
493 sound_die =
gi.soundindex(
"parasite/pardeth1.wav");
499 sound_tap =
gi.soundindex(
"parasite/paridle1.wav");
503 self->s.modelindex =
gi.modelindex(
"models/monsters/parasite/tris.md2");
504 VectorSet(self->mins, -16, -16, -24);
505 VectorSet(self->maxs, 16, 16, 24);
507 self->solid = SOLID_BBOX;
510 self->gib_health = -50;
◆ SP_monster_soldier()
void SP_monster_soldier |
( |
edict_t * |
self | ) |
|
Definition at line 1211 of file m_soldier.c.
1222 gi.soundindex(
"soldier/solatck1.wav");
1224 self->s.skinnum = 2;
1226 self->gib_health = -30;
◆ SP_monster_soldier_light()
void SP_monster_soldier_light |
( |
edict_t * |
self | ) |
|
Definition at line 1189 of file m_soldier.c.
1200 gi.modelindex(
"models/objects/laser/tris.md2");
1201 gi.soundindex(
"misc/lasfly.wav");
1202 gi.soundindex(
"soldier/solatck2.wav");
1204 self->s.skinnum = 0;
1206 self->gib_health = -30;
◆ SP_monster_soldier_ss()
void SP_monster_soldier_ss |
( |
edict_t * |
self | ) |
|
Definition at line 1231 of file m_soldier.c.
1242 gi.soundindex(
"soldier/solatck3.wav");
1244 self->s.skinnum = 4;
1246 self->gib_health = -30;
◆ SP_monster_supertank()
void SP_monster_supertank |
( |
edict_t * |
self | ) |
|
Definition at line 646 of file m_supertank.c.
664 self->solid = SOLID_BBOX;
665 self->s.modelindex =
gi.modelindex(
"models/monsters/boss1/tris.md2");
666 VectorSet(self->mins, -64, -64, 0);
667 VectorSet(self->maxs, 64, 64, 112);
670 self->gib_health = -500;
678 self->monsterinfo.dodge = NULL;
681 self->monsterinfo.melee = NULL;
682 self->monsterinfo.sight = NULL;
◆ SP_monster_tank()
void SP_monster_tank |
( |
edict_t * |
self | ) |
|
Definition at line 752 of file m_tank.c.
759 self->s.modelindex =
gi.modelindex(
"models/monsters/tank/tris.md2");
760 VectorSet(self->mins, -32, -32, -16);
761 VectorSet(self->maxs, 32, 32, 72);
763 self->solid = SOLID_BBOX;
774 gi.soundindex(
"tank/tnkatck1.wav");
775 gi.soundindex(
"tank/tnkatk2a.wav");
776 gi.soundindex(
"tank/tnkatk2b.wav");
777 gi.soundindex(
"tank/tnkatk2c.wav");
778 gi.soundindex(
"tank/tnkatk2d.wav");
779 gi.soundindex(
"tank/tnkatk2e.wav");
780 gi.soundindex(
"tank/tnkatck3.wav");
782 if (strcmp(self->classname,
"monster_tank_commander") == 0) {
784 self->gib_health = -225;
787 self->gib_health = -200;
797 self->monsterinfo.dodge = NULL;
799 self->monsterinfo.melee = NULL;
810 if (strcmp(self->classname,
"monster_tank_commander") == 0)
◆ SP_path_corner()
void SP_path_corner |
( |
edict_t * |
self | ) |
|
Definition at line 376 of file g_misc.c.
378 if (!self->targetname) {
379 gi.dprintf(
"path_corner with no targetname at %s\n",
vtos(self->s.origin));
384 self->solid = SOLID_TRIGGER;
386 VectorSet(self->mins, -8, -8, -8);
387 VectorSet(self->maxs, 8, 8, 8);
388 self->svflags |= SVF_NOCLIENT;
◆ SP_point_combat()
void SP_point_combat |
( |
edict_t * |
self | ) |
|
Definition at line 444 of file g_misc.c.
450 self->solid = SOLID_TRIGGER;
452 VectorSet(self->mins, -8, -8, -16);
453 VectorSet(self->maxs, 8, 8, 16);
454 self->svflags = SVF_NOCLIENT;
◆ SP_target_actor()
void SP_target_actor |
( |
edict_t * |
ent | ) |
|
Definition at line 541 of file m_actor.c.
543 if (!self->targetname)
544 gi.dprintf(
"%s with no targetname at %s\n", self->classname,
vtos(self->s.origin));
546 self->solid = SOLID_TRIGGER;
548 VectorSet(self->mins, -8, -8, -8);
549 VectorSet(self->maxs, 8, 8, 8);
550 self->svflags = SVF_NOCLIENT;
552 if (self->spawnflags & 1) {
557 if (self->s.angles[YAW] == 0)
558 self->s.angles[YAW] = 360;
◆ SP_target_blaster()
void SP_target_blaster |
( |
edict_t * |
ent | ) |
|
Definition at line 422 of file g_target.c.
426 self->noise_index =
gi.soundindex(
"weapons/laser2.wav");
433 self->svflags = SVF_NOCLIENT;
◆ SP_target_changelevel()
void SP_target_changelevel |
( |
edict_t * |
ent | ) |
|
Definition at line 293 of file g_target.c.
296 gi.dprintf(
"target_changelevel with no map at %s\n",
vtos(ent->s.origin));
302 if ((Q_stricmp(
level.
mapname,
"fact1") == 0) && (Q_stricmp(ent->map,
"fact3") == 0))
303 ent->map =
"fact3$secret1";
306 ent->svflags = SVF_NOCLIENT;
◆ SP_target_character()
void SP_target_character |
( |
edict_t * |
ent | ) |
|
Definition at line 1501 of file g_misc.c.
1504 gi.setmodel(
self, self->model);
1505 self->solid = SOLID_BSP;
1507 gi.linkentity(
self);
◆ SP_target_crosslevel_target()
void SP_target_crosslevel_target |
( |
edict_t * |
ent | ) |
|
Definition at line 468 of file g_target.c.
472 self->svflags = SVF_NOCLIENT;
475 self->nextthink =
level.
time +
self->delay;
◆ SP_target_crosslevel_trigger()
void SP_target_crosslevel_trigger |
( |
edict_t * |
ent | ) |
|
Definition at line 448 of file g_target.c.
450 self->svflags = SVF_NOCLIENT;
◆ SP_target_earthquake()
void SP_target_earthquake |
( |
edict_t * |
ent | ) |
|
Definition at line 761 of file g_target.c.
763 if (!self->targetname)
764 gi.dprintf(
"untargeted %s at %s\n", self->classname,
vtos(self->s.origin));
772 self->svflags |= SVF_NOCLIENT;
776 self->noise_index =
gi.soundindex(
"world/quake.wav");
◆ SP_target_explosion()
void SP_target_explosion |
( |
edict_t * |
ent | ) |
|
Definition at line 252 of file g_target.c.
255 ent->svflags = SVF_NOCLIENT;
◆ SP_target_goal()
void SP_target_goal |
( |
edict_t * |
ent | ) |
|
Definition at line 197 of file g_target.c.
208 ent->noise_index =
gi.soundindex(
st.
noise);
209 ent->svflags = SVF_NOCLIENT;
◆ SP_target_help()
void SP_target_help |
( |
edict_t * |
ent | ) |
|
Definition at line 127 of file g_target.c.
136 gi.dprintf(
"%s with no message at %s\n", ent->classname,
vtos(ent->s.origin));
◆ SP_target_laser()
void SP_target_laser |
( |
edict_t * |
self | ) |
|
◆ SP_target_lightramp()
void SP_target_lightramp |
( |
edict_t * |
self | ) |
|
Definition at line 688 of file g_target.c.
690 if (!self->message || strlen(self->message) != 2 || self->message[0] <
'a' || self->message[0] >
'z' || self->message[1] <
'a' || self->message[1] >
'z' || self->message[0] == self->message[1]) {
691 gi.dprintf(
"target_lightramp has bad ramp (%s) at %s\n", self->message,
vtos(self->s.origin));
702 gi.dprintf(
"%s with no target at %s\n", self->classname,
vtos(self->s.origin));
707 self->svflags |= SVF_NOCLIENT;
711 self->movedir[0] =
self->message[0] -
'a';
712 self->movedir[1] =
self->message[1] -
'a';
713 self->movedir[2] = (
self->movedir[1] -
self->movedir[0]) / (self->speed /
FRAMETIME);
◆ SP_target_secret()
void SP_target_secret |
( |
edict_t * |
ent | ) |
|
Definition at line 159 of file g_target.c.
170 ent->noise_index =
gi.soundindex(
st.
noise);
171 ent->svflags = SVF_NOCLIENT;
174 if (!Q_stricmp(
level.
mapname,
"mine3") && ent->s.origin[0] == 280 && ent->s.origin[1] == -2048 && ent->s.origin[2] == -624)
175 ent->message =
"You have found a secret area.";
◆ SP_target_spawner()
void SP_target_spawner |
( |
edict_t * |
ent | ) |
|
Definition at line 386 of file g_target.c.
389 self->svflags = SVF_NOCLIENT;
392 VectorScale(self->movedir, self->speed, self->movedir);
◆ SP_target_speaker()
void SP_target_speaker |
( |
edict_t * |
ent | ) |
|
Definition at line 78 of file g_target.c.
80 char buffer[MAX_QPATH];
83 gi.dprintf(
"target_speaker with no noise set at %s\n",
vtos(ent->s.origin));
89 strncpy(buffer,
st.
noise,
sizeof(buffer));
90 ent->noise_index =
gi.soundindex(buffer);
95 if (!ent->attenuation)
96 ent->attenuation = 1.0;
97 else if (ent->attenuation == -1)
101 if (ent->spawnflags & 1)
102 ent->s.sound = ent->noise_index;
◆ SP_target_splash()
void SP_target_splash |
( |
edict_t * |
ent | ) |
|
Definition at line 342 of file g_target.c.
350 self->svflags = SVF_NOCLIENT;
◆ SP_target_string()
void SP_target_string |
( |
edict_t * |
ent | ) |
|
◆ SP_target_temp_entity()
void SP_target_temp_entity |
( |
edict_t * |
ent | ) |
|
◆ SP_trigger_always()
void SP_trigger_always |
( |
edict_t * |
ent | ) |
|
◆ SP_trigger_counter()
void SP_trigger_counter |
( |
edict_t * |
ent | ) |
|
◆ SP_trigger_elevator()
void SP_trigger_elevator |
( |
edict_t * |
ent | ) |
|
◆ SP_trigger_gravity()
void SP_trigger_gravity |
( |
edict_t * |
ent | ) |
|
Definition at line 502 of file g_trigger.c.
505 gi.dprintf(
"trigger_gravity without gravity set at %s\n",
vtos(self->s.origin));
◆ SP_trigger_hurt()
void SP_trigger_hurt |
( |
edict_t * |
ent | ) |
|
Definition at line 461 of file g_trigger.c.
465 self->noise_index =
gi.soundindex(
"world/electro.wav");
471 if (self->spawnflags & 1)
472 self->solid = SOLID_NOT;
474 self->solid = SOLID_TRIGGER;
476 if (self->spawnflags & 2)
◆ SP_trigger_key()
void SP_trigger_key |
( |
edict_t * |
ent | ) |
|
Definition at line 259 of file g_trigger.c.
262 gi.dprintf(
"no key item for trigger_key at %s\n",
vtos(self->s.origin));
268 gi.dprintf(
"item %s not found for trigger_key at %s\n",
st.
item,
vtos(self->s.origin));
273 gi.dprintf(
"%s at %s has no target\n", self->classname,
vtos(self->s.origin));
277 gi.soundindex(
"misc/keytry.wav");
278 gi.soundindex(
"misc/keyuse.wav");
◆ SP_trigger_monsterjump()
void SP_trigger_monsterjump |
( |
edict_t * |
ent | ) |
|
Definition at line 550 of file g_trigger.c.
556 if (self->s.angles[YAW] == 0)
557 self->s.angles[YAW] = 360;
◆ SP_trigger_multiple()
void SP_trigger_multiple |
( |
edict_t * |
ent | ) |
|
Definition at line 109 of file g_trigger.c.
111 if (ent->sounds == 1)
112 ent->noise_index =
gi.soundindex(
"misc/secret.wav");
113 else if (ent->sounds == 2)
114 ent->noise_index =
gi.soundindex(
"misc/talk.wav");
115 else if (ent->sounds == 3)
116 ent->noise_index =
gi.soundindex(
"misc/trigger1.wav");
122 ent->svflags |= SVF_NOCLIENT;
125 if (ent->spawnflags & 4) {
126 ent->solid = SOLID_NOT;
129 ent->solid = SOLID_TRIGGER;
136 gi.setmodel(ent, ent->model);
Referenced by SP_trigger_once().
◆ SP_trigger_once()
void SP_trigger_once |
( |
edict_t * |
ent | ) |
|
Definition at line 156 of file g_trigger.c.
160 if (ent->spawnflags & 1) {
163 VectorMA(ent->mins, 0.5, ent->size, v);
164 ent->spawnflags &= ~1;
165 ent->spawnflags |= 4;
166 gi.dprintf(
"fixed TRIGGERED flag on %s at %s\n", ent->classname,
vtos(v));
◆ SP_trigger_push()
void SP_trigger_push |
( |
edict_t * |
ent | ) |
|
◆ SP_trigger_relay()
void SP_trigger_relay |
( |
edict_t * |
ent | ) |
|
◆ SP_turret_base()
void SP_turret_base |
( |
edict_t * |
self | ) |
|
Definition at line 250 of file g_turret.c.
252 self->solid = SOLID_BSP;
254 gi.setmodel(
self, self->model);
◆ SP_turret_breach()
void SP_turret_breach |
( |
edict_t * |
self | ) |
|
Definition at line 211 of file g_turret.c.
213 self->solid = SOLID_BSP;
215 gi.setmodel(
self, self->model);
234 self->ideal_yaw =
self->s.angles[YAW];
235 self->move_angles[YAW] =
self->ideal_yaw;
◆ SP_turret_driver()
void SP_turret_driver |
( |
edict_t * |
self | ) |
|
Definition at line 371 of file g_turret.c.
379 self->solid = SOLID_BBOX;
380 self->s.modelindex =
gi.modelindex(
"models/monsters/infantry/tris.md2");
381 VectorSet(self->mins, -16, -16, -24);
382 VectorSet(self->maxs, 16, 16, 32);
385 self->gib_health = 0;
387 self->viewheight = 24;
396 self->svflags |= SVF_MONSTER;
397 self->s.renderfx |= RF_FRAMELERP;
400 self->clipmask = MASK_MONSTERSOLID;
401 VectorCopy(self->s.origin, self->s.old_origin);
407 gi.dprintf(
"%s at %s has bad item: %s\n", self->classname,
vtos(self->s.origin),
st.
item);
◆ SP_viewthing()
void SP_viewthing |
( |
edict_t * |
ent | ) |
|
Definition at line 468 of file g_misc.c.
470 gi.dprintf(
"viewthing spawned\n");
473 ent->solid = SOLID_BBOX;
474 ent->s.renderfx = RF_FRAMELERP;
475 VectorSet(ent->mins, -16, -16, -24);
476 VectorSet(ent->maxs, 16, 16, 32);
477 ent->s.modelindex =
gi.modelindex(
"models/objects/banner/tris.md2");
◆ SP_worldspawn()
void SP_worldspawn |
( |
edict_t * |
ent | ) |
|
Definition at line 842 of file g_spawn.c.
845 ent->solid = SOLID_BSP;
847 ent->s.modelindex = 1;
862 if (ent->message && ent->message[0]) {
863 gi.configstring(CS_NAME, ent->message);
869 gi.configstring(CS_SKY,
st.
sky);
871 gi.configstring(CS_SKY,
"unit1_");
875 gi.configstring(CS_SKYAXIS,
va(
"%f %f %f",
878 gi.configstring(CS_CDTRACK,
va(
"%i", ent->sounds));
880 gi.configstring(CS_MAXCLIENTS,
va(
"%i", (
int)(
maxclients->value)));
892 gi.imageindex(
"i_help");
894 gi.imageindex(
"help");
895 gi.imageindex(
"field_3");
898 gi.cvar_set(
"sv_gravity",
"800");
902 snd_fry =
gi.soundindex(
"player/fry.wav");
906 gi.soundindex(
"player/lava1.wav");
907 gi.soundindex(
"player/lava2.wav");
909 gi.soundindex(
"misc/pc_up.wav");
910 gi.soundindex(
"misc/talk1.wav");
912 gi.soundindex(
"misc/udeath.wav");
915 gi.soundindex(
"items/respawn1.wav");
918 gi.soundindex(
"*death1.wav");
919 gi.soundindex(
"*death2.wav");
920 gi.soundindex(
"*death3.wav");
921 gi.soundindex(
"*death4.wav");
922 gi.soundindex(
"*fall1.wav");
923 gi.soundindex(
"*fall2.wav");
924 gi.soundindex(
"*gurp1.wav");
925 gi.soundindex(
"*gurp2.wav");
926 gi.soundindex(
"*jump1.wav");
927 gi.soundindex(
"*pain25_1.wav");
928 gi.soundindex(
"*pain25_2.wav");
929 gi.soundindex(
"*pain50_1.wav");
930 gi.soundindex(
"*pain50_2.wav");
931 gi.soundindex(
"*pain75_1.wav");
932 gi.soundindex(
"*pain75_2.wav");
933 gi.soundindex(
"*pain100_1.wav");
934 gi.soundindex(
"*pain100_2.wav");
939 gi.modelindex(
"#w_blaster.md2");
940 gi.modelindex(
"#w_shotgun.md2");
941 gi.modelindex(
"#w_sshotgun.md2");
942 gi.modelindex(
"#w_machinegun.md2");
943 gi.modelindex(
"#w_chaingun.md2");
944 gi.modelindex(
"#a_grenades.md2");
945 gi.modelindex(
"#w_glauncher.md2");
946 gi.modelindex(
"#w_rlauncher.md2");
947 gi.modelindex(
"#w_hyperblaster.md2");
948 gi.modelindex(
"#w_railgun.md2");
949 gi.modelindex(
"#w_bfg.md2");
953 gi.soundindex(
"player/gasp1.wav");
954 gi.soundindex(
"player/gasp2.wav");
956 gi.soundindex(
"player/watr_in.wav");
957 gi.soundindex(
"player/watr_out.wav");
959 gi.soundindex(
"player/watr_un.wav");
961 gi.soundindex(
"player/u_breath1.wav");
962 gi.soundindex(
"player/u_breath2.wav");
964 gi.soundindex(
"items/pkup.wav");
965 gi.soundindex(
"world/land.wav");
966 gi.soundindex(
"misc/h2ohit1.wav");
968 gi.soundindex(
"items/damage.wav");
969 gi.soundindex(
"items/protect.wav");
970 gi.soundindex(
"items/protect4.wav");
971 gi.soundindex(
"weapons/noammo.wav");
973 gi.soundindex(
"infantry/inflies1.wav");
976 gi.modelindex(
"models/objects/gibs/arm/tris.md2");
977 gi.modelindex(
"models/objects/gibs/bone/tris.md2");
978 gi.modelindex(
"models/objects/gibs/bone2/tris.md2");
979 gi.modelindex(
"models/objects/gibs/chest/tris.md2");
980 gi.modelindex(
"models/objects/gibs/skull/tris.md2");
981 gi.modelindex(
"models/objects/gibs/head2/tris.md2");
988 gi.configstring(CS_LIGHTS + 0,
"m");
991 gi.configstring(CS_LIGHTS + 1,
"mmnmmommommnonmmonqnmmo");
994 gi.configstring(CS_LIGHTS + 2,
"abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba");
997 gi.configstring(CS_LIGHTS + 3,
"mmmmmaaaaammmmmaaaaaabcdefgabcdefg");
1000 gi.configstring(CS_LIGHTS + 4,
"mamamamamama");
1003 gi.configstring(CS_LIGHTS + 5,
"jklmnopqrstuvwxyzyxwvutsrqponmlkj");
1006 gi.configstring(CS_LIGHTS + 6,
"nmonqnmomnmomomno");
1009 gi.configstring(CS_LIGHTS + 7,
"mmmaaaabcdefgmmmmaaaammmaamm");
1012 gi.configstring(CS_LIGHTS + 8,
"mmmaaammmaaammmabcdefaaaammmmabcdefmmmaaaa");
1015 gi.configstring(CS_LIGHTS + 9,
"aaaaaaaazzzzzzzz");
1018 gi.configstring(CS_LIGHTS + 10,
"mmamammmmammamamaaamammma");
1021 gi.configstring(CS_LIGHTS + 11,
"abcdefghijklmnopqrrqponmlkjihgfedcba");
1026 gi.configstring(CS_LIGHTS + 63,
"a");
◆ SpawnEntities()
void SpawnEntities |
( |
const char * |
mapname, |
|
|
const char * |
entities, |
|
|
const char * |
spawnpoint |
|
) |
| |
Definition at line 568 of file g_spawn.c.
576 skill_level = floor(
skill->value);
581 if (
skill->value != skill_level)
582 gi.cvar_forceset(
"skill",
va(
"%f", skill_level));
608 gi.error(
"ED_LoadFromFile: found %s when expecting {",
com_token);
617 if (!Q_stricmp(
level.
mapname,
"command") && !Q_stricmp(ent->classname,
"trigger_once") && !Q_stricmp(ent->model,
"*27"))
622 if (
nomonsters->value && (strstr(ent->classname,
"monster") || strstr(ent->classname,
"misc_deadsoldier") || strstr(ent->classname,
"misc_insane"))) {
651 gi.dprintf(
"%i entities inhibited\n", inhibit);
656 while (i <
globals.num_edicts) {
657 if (ent->inuse != 0 || ent->inuse != 1)
658 Com_DPrintf(
"Invalid entity %d\n", i);
Referenced by GetGameAPI().
◆ dm_statusbar
const char dm_statusbar[] |
|
static |
◆ single_statusbar
const char single_statusbar[] |
|
static |
◆ spawn_fields
◆ spawn_funcs
◆ temp_fields
gitem_t * FindItem(char *pickup_name)
mmove_t supertank_move_stand
void gladiator_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void misc_strogg_ship_use(edict_t *self, edict_t *other, edict_t *activator)
void train_use(edict_t *self, edict_t *other, edict_t *activator)
void flyer_sight(edict_t *self, edict_t *other)
void trigger_counter_use(edict_t *self, edict_t *other, edict_t *activator)
void gladiator_melee(edict_t *self)
void misc_deadsoldier_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void gunner_sight(edict_t *self, edict_t *other)
void chick_sight(edict_t *self, edict_t *other)
void use_target_changelevel(edict_t *self, edict_t *other, edict_t *activator)
void func_train_find(edict_t *self)
void flipper_melee(edict_t *self)
void hover_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void PlayerTrail_Init(void)
void insane_walk(edict_t *self)
void medic_attack(edict_t *self)
static const char single_statusbar[]
void button_use(edict_t *self, edict_t *other, edict_t *activator)
void tank_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void misc_viper_bomb_use(edict_t *self, edict_t *other, edict_t *activator)
void mutant_sight(edict_t *self, edict_t *other)
void trigger_relay_use(edict_t *self, edict_t *other, edict_t *activator)
void barrel_delay(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void turret_breach_finish_init(edict_t *self)
void tank_idle(edict_t *self)
void insane_pain(edict_t *self, edict_t *other, float kick, int damage)
static int sound_scream[8]
void func_timer_think(edict_t *self)
static char * ED_NewString(const char *string)
void func_object_use(edict_t *self, edict_t *other, edict_t *activator)
static int sound_missile_reload
qboolean medic_checkattack(edict_t *self)
void func_conveyor_use(edict_t *self, edict_t *other, edict_t *activator)
void hover_sight(edict_t *self, edict_t *other)
void tank_stand(edict_t *self)
void parasite_idle(edict_t *self)
void mutant_run(edict_t *self)
gitem_t * FindItemByClassname(char *classname)
mmove_t flipper_move_stand
void actor_pain(edict_t *self, edict_t *other, float kick, int damage)
void barrel_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
size_t Q_snprintf(char *dest, size_t size, const char *fmt,...)
void infantry_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
static int sound_hook_heal
void flyer_stand(edict_t *self)
void jorg_attack(edict_t *self)
void button_killed(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void flipper_stand(edict_t *self)
void mutant_pain(edict_t *self, edict_t *other, float kick, int damage)
static char com_token[4][MAX_TOKEN_CHARS]
void Use_Plat(edict_t *ent, edict_t *other, edict_t *activator)
void hurt_use(edict_t *self, edict_t *other, edict_t *activator)
void use_target_goal(edict_t *ent, edict_t *other, edict_t *activator)
void TH_viewthing(edict_t *ent)
void misc_viper_use(edict_t *self, edict_t *other, edict_t *activator)
mmove_t floater_move_stand2
void door_secret_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void medic_sight(edict_t *self, edict_t *other)
void turret_driver_link(edict_t *self)
static int sound_death_hit
void actor_run(edict_t *self)
mmove_t infantry_move_stand
void floater_stand(edict_t *self)
void SP_monster_soldier_x(edict_t *self)
void path_corner_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void func_clock_think(edict_t *self)
void use_target_blaster(edict_t *self, edict_t *other, edict_t *activator)
void actor_walk(edict_t *self)
void SP_misc_teleporter_dest(edict_t *ent)
void plat_blocked(edict_t *self, edict_t *other)
void chick_stand(edict_t *self)
#define SPAWNFLAG_NOT_EASY
static const spawn_field_t spawn_fields[]
void mutant_jump(edict_t *self)
void boss2_pain(edict_t *self, edict_t *other, float kick, int damage)
void misc_banner_think(edict_t *ent)
void target_string_use(edict_t *self, edict_t *other, edict_t *activator)
void floater_walk(edict_t *self)
static int sound_hook_hit
void SpawnItem(edict_t *ent, gitem_t *item)
void Use_Target_Speaker(edict_t *ent, edict_t *other, edict_t *activator)
static int sound_missile_prelaunch
void SP_FixCoopSpots(edict_t *self)
void func_train_find(edict_t *self)
void flipper_walk(edict_t *self)
void train_blocked(edict_t *self, edict_t *other)
static int sound_punch_swing
void rotating_use(edict_t *self, edict_t *other, edict_t *activator)
static int sound_death_ss
void gunner_pain(edict_t *self, edict_t *other, float kick, int damage)
void medic_run(edict_t *self)
void brain_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void floater_idle(edict_t *self)
void actor_attack(edict_t *self)
void M_droptofloor(edict_t *ent)
void turret_driver_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void hover_stand(edict_t *self)
void target_lightramp_use(edict_t *self, edict_t *other, edict_t *activator)
void gladiator_sight(edict_t *self, edict_t *other)
void commander_body_use(edict_t *self, edict_t *other, edict_t *activator)
void parasite_sight(edict_t *self, edict_t *other)
void infantry_walk(edict_t *self)
void door_use(edict_t *self, edict_t *other, edict_t *activator)
void misc_easterchick2_think(edict_t *self)
void jorg_pain(edict_t *self, edict_t *other, float kick, int damage)
void insane_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
#define SPAWNFLAG_NOT_MEDIUM
void mutant_search(edict_t *self)
static int sound_chest_open
void monster_use(edict_t *self, edict_t *other, edict_t *activator)
void jorg_walk(edict_t *self)
static int sound_weapon_cock
void PrecacheItem(gitem_t *it)
void walkmonster_start(edict_t *self)
void flipper_start_run(edict_t *self)
void trigger_enable(edict_t *self, edict_t *other, edict_t *activator)
void commander_body_drop(edict_t *self)
void flyer_pain(edict_t *self, edict_t *other, float kick, int damage)
char level_name[MAX_QPATH]
#define TRAIN_BLOCK_STOPS
void button_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
mmove_t berserk_move_stand
void gunner_search(edict_t *self)
void brain_sight(edict_t *self, edict_t *other)
void brain_walk(edict_t *self)
void teleporter_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void func_wall_use(edict_t *self, edict_t *other, edict_t *activator)
void supertank_walk(edict_t *self)
void Use_Target_Tent(edict_t *ent, edict_t *other, edict_t *activator)
void light_use(edict_t *self, edict_t *other, edict_t *activator)
void berserk_stand(edict_t *self)
#define POWER_ARMOR_SCREEN
void brain_stand(edict_t *self)
mmove_t gunner_move_stand
static const spawn_field_t temp_fields[]
void boss2_stand(edict_t *self)
void gladiator_pain(edict_t *self, edict_t *other, float kick, int damage)
void ED_CallSpawn(edict_t *ent)
void flipper_sight(edict_t *self, edict_t *other)
void medic_walk(edict_t *self)
qboolean Jorg_CheckAttack(edict_t *self)
static int sound_cleaver_swing
void G_FreeEdict(edict_t *e)
void Touch_Multi(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void supertank_stand(edict_t *self)
void mutant_melee(edict_t *self)
void floater_attack(edict_t *self)
#define CLOCK_MESSAGE_SIZE
void infantry_dodge(edict_t *self, edict_t *attacker, float eta)
void gladiator_search(edict_t *self)
void medic_pain(edict_t *self, edict_t *other, float kick, int damage)
static int sound_missile_launch
static int sound_death_light
void floater_run(edict_t *self)
void berserk_melee(edict_t *self)
void use_target_spawner(edict_t *self, edict_t *other, edict_t *activator)
void Use_Boss3(edict_t *ent, edict_t *other, edict_t *activator)
void point_combat_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void use_killbox(edict_t *self, edict_t *other, edict_t *activator)
void target_earthquake_use(edict_t *self, edict_t *other, edict_t *activator)
void infantry_attack(edict_t *self)
void rotating_blocked(edict_t *self, edict_t *other)
void func_object_release(edict_t *self)
void chick_pain(edict_t *self, edict_t *other, float kick, int damage)
void brain_idle(edict_t *self)
void boss2_walk(edict_t *self)
static int sound_fall_down
void mutant_idle(edict_t *self)
void gladiator_attack(edict_t *self)
void swimmonster_start(edict_t *self)
char * va(const char *format,...)
void actor_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void misc_eastertank_think(edict_t *self)
void supertank_run(edict_t *self)
void berserk_walk(edict_t *self)
void Use_Areaportal(edict_t *ent, edict_t *other, edict_t *activator)
void gladiator_idle(edict_t *self)
void parasite_attack(edict_t *self)
mmove_t parasite_move_stand
void jorg_run(edict_t *self)
void func_clock_use(edict_t *self, edict_t *other, edict_t *activator)
static int sound_step_right
void AngleVectors(vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
void chick_walk(edict_t *self)
void floater_pain(edict_t *self, edict_t *other, float kick, int damage)
void flyer_melee(edict_t *self)
void tank_walk(edict_t *self)
void medic_idle(edict_t *self)
void berserk_search(edict_t *self)
static int sound_hook_launch
void parasite_stand(edict_t *self)
static void func_clock_reset(edict_t *self)
mmove_t gladiator_move_stand
void hover_run(edict_t *self)
void door_secret_blocked(edict_t *self, edict_t *other)
void parasite_start_walk(edict_t *self)
void flyer_walk(edict_t *self)
void turret_blocked(edict_t *self, edict_t *other)
void hover_pain(edict_t *self, edict_t *other, float kick, int damage)
void misc_blackhole_use(edict_t *ent, edict_t *other, edict_t *activator)
void actor_use(edict_t *self, edict_t *other, edict_t *activator)
void flipper_pain(edict_t *self, edict_t *other, float kick, int damage)
void boss2_run(edict_t *self)
void misc_blackhole_think(edict_t *self)
void Think_SpawnDoorTrigger(edict_t *ent)
void mutant_walk(edict_t *self)
void door_blocked(edict_t *self, edict_t *other)
void floater_sight(edict_t *self, edict_t *other)
static qboolean ED_ParseField(const spawn_field_t *fields, const char *key, const char *value, byte *b)
void flipper_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void infantry_pain(edict_t *self, edict_t *other, float kick, int damage)
void chick_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void chick_attack(edict_t *self)
void door_killed(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void gunner_attack(edict_t *self)
void brain_pain(edict_t *self, edict_t *other, float kick, int damage)
static const spawn_func_t spawn_funcs[]
void trigger_gravity_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
static int sound_tentacles_retract
void tank_run(edict_t *self)
void door_secret_use(edict_t *self, edict_t *other, edict_t *activator)
void SP_CreateCoopSpots(edict_t *self)
void Use_Multi(edict_t *ent, edict_t *other, edict_t *activator)
#define SECRET_ALWAYS_SHOOT
void target_laser_start(edict_t *self)
void gunner_walk(edict_t *self)
void flyer_idle(edict_t *self)
void hover_walk(edict_t *self)
void func_explosive_use(edict_t *self, edict_t *other, edict_t *activator)
void gunner_dodge(edict_t *self, edict_t *attacker, float eta)
static int sound_melee_hit
static const char dm_statusbar[]
void brain_melee(edict_t *self)
void use_target_secret(edict_t *ent, edict_t *other, edict_t *activator)
void MakronPrecache(void)
void func_explosive_spawn(edict_t *self, edict_t *other, edict_t *activator)
void medic_search(edict_t *self)
#define HEALTH_IGNORE_MAX
#define SPAWNFLAG_NOT_DEATHMATCH
#define SPAWNFLAG_NOT_HARD
void chick_melee(edict_t *self)
void hurt_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void gib_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void Think_CalcMoveSpeed(edict_t *self)
void jorg_search(edict_t *self)
void insane_stand(edict_t *self)
void supertank_attack(edict_t *self)
void jorg_stand(edict_t *self)
void G_UseTargets(edict_t *ent, edict_t *activator)
void target_lightramp_think(edict_t *self)
void ED_ParseEdict(const char **data, edict_t *ent)
void flyer_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void trigger_crosslevel_trigger_use(edict_t *self, edict_t *other, edict_t *activator)
void SP_trigger_multiple(edict_t *ent)
void medic_dodge(edict_t *self, edict_t *attacker, float eta)
void mutant_stand(edict_t *self)
void trigger_key_use(edict_t *self, edict_t *other, edict_t *activator)
void tank_pain(edict_t *self, edict_t *other, float kick, int damage)
#define SPAWNFLAG_NOT_COOP
void tank_attack(edict_t *self)
void flyer_attack(edict_t *self)
qboolean Boss2_CheckAttack(edict_t *self)
static int sound_melee_swing
void target_crosslevel_target_think(edict_t *self)
void door_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
static int sound_tentacles_extend
void hover_start_attack(edict_t *self)
void G_SetMovedir(vec3_t angles, vec3_t movedir)
void boss2_attack(edict_t *self)
static int sound_hook_retract
void gladiator_walk(edict_t *self)
void tank_sight(edict_t *self, edict_t *other)
void infantry_stand(edict_t *self)
void misc_easterchick_think(edict_t *self)
void medic_stand(edict_t *self)
void infantry_run(edict_t *self)
void chick_dodge(edict_t *self, edict_t *attacker, float eta)
char * COM_Parse(const char **data_p)
void parasite_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
mmove_t insane_move_stand_normal
void func_explosive_explode(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void func_timer_use(edict_t *self, edict_t *other, edict_t *activator)
static int sound_cleaver_hit
static int sound_step_left
void use_target_splash(edict_t *self, edict_t *other, edict_t *activator)
void gunner_run(edict_t *self)
void InitTrigger(edict_t *self)
void gladiator_stand(edict_t *self)
void berserk_sight(edict_t *self, edict_t *other)
void insane_run(edict_t *self)
qboolean mutant_checkattack(edict_t *self)
void infantry_sight(edict_t *self, edict_t *other)
void SaveClientData(void)
void gunner_stand(edict_t *self)
void Use_Target_Help(edict_t *ent, edict_t *other, edict_t *activator)
void floater_melee(edict_t *self)
void medic_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void plat_spawn_inside_trigger(edict_t *ent)
static int sound_cleaver_miss
void brain_run(edict_t *self)
void berserk_pain(edict_t *self, edict_t *other, float kick, int damage)
void boss2_search(edict_t *self)
void boss2_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void use_target_explosion(edict_t *self, edict_t *other, edict_t *activator)
void Think_Boss3Stand(edict_t *ent)
void trigger_push_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void actor_stand(edict_t *self)
void gunner_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void hover_search(edict_t *self)
void floater_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void flyer_run(edict_t *self)
void gladiator_run(edict_t *self)
void mutant_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void target_earthquake_think(edict_t *self)
void chick_run(edict_t *self)
static int sound_pain_light
void misc_satellite_dish_use(edict_t *self, edict_t *other, edict_t *activator)
void supertank_search(edict_t *self)
void parasite_start_run(edict_t *self)
void berserk_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void brain_dodge(edict_t *self, edict_t *attacker, float eta)
void trigger_monsterjump_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void brain_search(edict_t *self)
mmove_t floater_move_stand1
void infantry_stand(edict_t *self)
void supertank_pain(edict_t *self, edict_t *other, float kick, int damage)
void target_actor_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void supertank_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void trigger_elevator_init(edict_t *self)
mmove_t mutant_move_stand
static int sound_punch_hit
void parasite_pain(edict_t *self, edict_t *other, float kick, int damage)
void(* spawn)(edict_t *ent)
void infantry_fidget(edict_t *self)
void berserk_run(edict_t *self)
void flymonster_start(edict_t *self)
void jorg_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)