Merge pull request #16 from 0lvin/master

Fix compiler warnings
This commit is contained in:
Yamagi 2021-01-27 08:28:07 +01:00 committed by GitHub
commit f3912680ac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 160 additions and 200 deletions

1
.gitignore vendored
View file

@ -1 +1,2 @@
/build/ /build/
/release/

View file

@ -627,7 +627,7 @@ qboolean Pickup_Ammo (edict_t *ent, edict_t *other)
count = ent->item->quantity; count = ent->item->quantity;
oldcount = other->client->pers.inventory[ITEM_INDEX(ent->item)]; oldcount = other->client->pers.inventory[ITEM_INDEX(ent->item)];
if(ent->spawnflags & 0x08) if(ent->spawnflags & 0x08)
{ {
if(oldcount >= count) if(oldcount >= count)
@ -1066,7 +1066,7 @@ void Touch_Item (edict_t *ent, edict_t *other, cplane_t *plane, csurface_t *surf
if (taken) if (taken)
{ {
// flash the screen // flash the screen
other->client->bonus_alpha = 0.25; other->client->bonus_alpha = 0.25;
// show icon and name on status bar // show icon and name on status bar
other->client->ps.stats[STAT_PICKUP_ICON] = gi.imageindex(ent->item->icon); other->client->ps.stats[STAT_PICKUP_ICON] = gi.imageindex(ent->item->icon);
@ -1150,7 +1150,7 @@ edict_t *Drop_Item (edict_t *ent, gitem_t *item)
VectorSet (dropped->maxs, 15, 15, 15); VectorSet (dropped->maxs, 15, 15, 15);
gi.setmodel (dropped, dropped->item->world_model); gi.setmodel (dropped, dropped->item->world_model);
dropped->solid = SOLID_TRIGGER; dropped->solid = SOLID_TRIGGER;
dropped->movetype = MOVETYPE_TOSS; dropped->movetype = MOVETYPE_TOSS;
dropped->touch = drop_temp_touch; dropped->touch = drop_temp_touch;
dropped->owner = ent; dropped->owner = ent;
@ -1234,7 +1234,7 @@ void droptofloor (edict_t *ent)
else else
gi.setmodel (ent, ent->item->world_model); gi.setmodel (ent, ent->item->world_model);
ent->solid = SOLID_TRIGGER; ent->solid = SOLID_TRIGGER;
ent->movetype = MOVETYPE_TOSS; ent->movetype = MOVETYPE_TOSS;
ent->touch = Touch_Item; ent->touch = Touch_Item;
v = tv(0,0,-128); v = tv(0,0,-128);
@ -1439,7 +1439,7 @@ void SpawnItem (edict_t *ent, gitem_t *item)
//====================================================================== //======================================================================
gitem_t itemlist[] = gitem_t itemlist[] =
{ {
{ {
NULL NULL
@ -1452,7 +1452,7 @@ gitem_t itemlist[] =
/*QUAKED item_armor_body (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED item_armor_body (.3 .3 1) (-16 -16 -16) (16 16 16)
*/ */
{ {
"item_armor_body", "item_armor_body",
Pickup_Armor, Pickup_Armor,
NULL, NULL,
NULL, NULL,
@ -1474,7 +1474,7 @@ gitem_t itemlist[] =
/*QUAKED item_armor_combat (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED item_armor_combat (.3 .3 1) (-16 -16 -16) (16 16 16)
*/ */
{ {
"item_armor_combat", "item_armor_combat",
Pickup_Armor, Pickup_Armor,
NULL, NULL,
NULL, NULL,
@ -1496,7 +1496,7 @@ gitem_t itemlist[] =
/*QUAKED item_armor_jacket (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED item_armor_jacket (.3 .3 1) (-16 -16 -16) (16 16 16)
*/ */
{ {
"item_armor_jacket", "item_armor_jacket",
Pickup_Armor, Pickup_Armor,
NULL, NULL,
NULL, NULL,
@ -1518,7 +1518,7 @@ gitem_t itemlist[] =
/*QUAKED item_armor_shard (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED item_armor_shard (.3 .3 1) (-16 -16 -16) (16 16 16)
*/ */
{ {
"item_armor_shard", "item_armor_shard",
Pickup_Armor, Pickup_Armor,
NULL, NULL,
NULL, NULL,
@ -1541,7 +1541,7 @@ gitem_t itemlist[] =
/*QUAKED item_power_screen (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED item_power_screen (.3 .3 1) (-16 -16 -16) (16 16 16)
*/ */
{ {
"item_power_screen", "item_power_screen",
Pickup_PowerArmor, Pickup_PowerArmor,
Use_PowerArmor, Use_PowerArmor,
Drop_PowerArmor, Drop_PowerArmor,
@ -1583,7 +1583,7 @@ gitem_t itemlist[] =
}, },
// //
// WEAPONS // WEAPONS
// //
/*QUAKED weapon_hand (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED weapon_hand (.3 .3 1) (-16 -16 -16) (16 16 16)
@ -1635,7 +1635,7 @@ gitem_t itemlist[] =
always owned, never in the world always owned, never in the world
*/ */
{ {
"weapon_blaster", "weapon_blaster",
NULL, NULL,
Use_Weapon, Use_Weapon,
NULL, NULL,
@ -1657,7 +1657,7 @@ always owned, never in the world
/*QUAKED weapon_shotgun (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED weapon_shotgun (.3 .3 1) (-16 -16 -16) (16 16 16)
*/ */
{ {
"weapon_shotgun", "weapon_shotgun",
Pickup_Weapon, Pickup_Weapon,
Use_Weapon, Use_Weapon,
Drop_Weapon, Drop_Weapon,
@ -1679,7 +1679,7 @@ always owned, never in the world
/*QUAKED weapon_supershotgun (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED weapon_supershotgun (.3 .3 1) (-16 -16 -16) (16 16 16)
*/ */
{ {
"weapon_supershotgun", "weapon_supershotgun",
Pickup_Weapon, Pickup_Weapon,
Use_Weapon, Use_Weapon,
Drop_Weapon, Drop_Weapon,
@ -1701,7 +1701,7 @@ always owned, never in the world
/*QUAKED weapon_machinegun (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED weapon_machinegun (.3 .3 1) (-16 -16 -16) (16 16 16)
*/ */
{ {
"weapon_machinegun", "weapon_machinegun",
Pickup_Weapon, Pickup_Weapon,
Use_Weapon, Use_Weapon,
Drop_Weapon, Drop_Weapon,
@ -1723,7 +1723,7 @@ always owned, never in the world
/*QUAKED weapon_chaingun (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED weapon_chaingun (.3 .3 1) (-16 -16 -16) (16 16 16)
*/ */
{ {
"weapon_chaingun", "weapon_chaingun",
Pickup_Weapon, Pickup_Weapon,
Use_Weapon, Use_Weapon,
Drop_Weapon, Drop_Weapon,
@ -1841,7 +1841,7 @@ always owned, never in the world
/*QUAKED weapon_hyperblaster (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED weapon_hyperblaster (.3 .3 1) (-16 -16 -16) (16 16 16)
*/ */
{ {
"weapon_hyperblaster", "weapon_hyperblaster",
Pickup_Weapon, Pickup_Weapon,
Use_Weapon, Use_Weapon,
Drop_Weapon, Drop_Weapon,
@ -1863,7 +1863,7 @@ always owned, never in the world
/*QUAKED weapon_railgun (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED weapon_railgun (.3 .3 1) (-16 -16 -16) (16 16 16)
*/ */
{ {
"weapon_railgun", "weapon_railgun",
Pickup_Weapon, Pickup_Weapon,
Use_Weapon, Use_Weapon,
Drop_Weapon, Drop_Weapon,
@ -1885,7 +1885,7 @@ always owned, never in the world
/*QUAKED weapon_sniperrifle (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED weapon_sniperrifle (.3 .3 1) (-16 -16 -16) (16 16 16)
*/ */
{ {
"weapon_sniperrifle", "weapon_sniperrifle",
Pickup_Weapon, Pickup_Weapon,
Use_Weapon, Use_Weapon,
Drop_Weapon, Drop_Weapon,
@ -1951,7 +1951,7 @@ always owned, never in the world
IT_WEAPON|IT_STAY_COOP, IT_WEAPON|IT_STAY_COOP,
NULL, NULL,
0, 0,
/* precache */ "weapons/sonic/sc_warm.wav weapons/sonic/sc_cool.wav weapons/sonic/sc_fire.wav" // weapons/sonic/sc_act.wav weapons/sonic/sc_dact.wav /* precache */ "weapons/sonic/sc_warm.wav weapons/sonic/sc_cool.wav weapons/sonic/sc_fire.wav" // weapons/sonic/sc_act.wav weapons/sonic/sc_dact.wav
}, },
/*QUAKED ammo_a2k (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED ammo_a2k (.3 .3 1) (-16 -16 -16) (16 16 16)
@ -1977,7 +1977,7 @@ always owned, never in the world
HIDE_FROM_SELECTION HIDE_FROM_SELECTION
}, },
// //
// AMMO ITEMS // AMMO ITEMS
// //
@ -2137,7 +2137,7 @@ always owned, never in the world
IT_AMMO, IT_AMMO,
NULL, NULL,
AMMO_EMPNUKE, AMMO_EMPNUKE,
/* precache */ "items/empnuke/emp_trg.wav" //items/empnuke/emp_act.wav items/empnuke/emp_spin.wav items/empnuke/emp_idle.wav /* precache */ "items/empnuke/emp_trg.wav" //items/empnuke/emp_act.wav items/empnuke/emp_spin.wav items/empnuke/emp_idle.wav
}, },
// //
@ -2146,7 +2146,7 @@ always owned, never in the world
/*QUAKED item_quad (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED item_quad (.3 .3 1) (-16 -16 -16) (16 16 16)
*/ */
{ {
"item_quad", "item_quad",
Pickup_Powerup, Pickup_Powerup,
Use_Quad, Use_Quad,
Drop_General, Drop_General,
@ -2275,7 +2275,7 @@ always owned, never in the world
/* precache */ "items/visor/act.wav items/visor/deact.wav"// items/visor/next.wav" /* precache */ "items/visor/act.wav items/visor/deact.wav"// items/visor/next.wav"
}, },
/*QUAKED ammo_plasmashield (.3 .3 1) (-16 -16 -16) (16 16 16) /*QUAKED ammo_plasmashield (.3 .3 1) (-16 -16 -16) (16 16 16)
*/ */
{ {
@ -2866,8 +2866,8 @@ void SetItemNames (void)
{ {
int i; int i;
gitem_t *it; gitem_t *it;
int index;
for (i=0, index = 0; i<game.num_items ; i++) for (i=0; i<game.num_items ; i++)
{ {
it = &itemlist[i]; it = &itemlist[i];
gi.configstring (CS_ITEMS+i, it->pickup_name); gi.configstring (CS_ITEMS+i, it->pickup_name);

View file

@ -7,7 +7,7 @@
pushmove objects do not obey gravity, and do not interact with each other or trigger fields, but block normal movement and push normal objects when they move. pushmove objects do not obey gravity, and do not interact with each other or trigger fields, but block normal movement and push normal objects when they move.
onground is set for toss objects when they come to a complete rest. it is set for steping or walking objects onground is set for toss objects when they come to a complete rest. it is set for steping or walking objects
doors, plats, etc are SOLID_BSP, and MOVETYPE_PUSH doors, plats, etc are SOLID_BSP, and MOVETYPE_PUSH
bonus items are SOLID_TRIGGER touch, and MOVETYPE_TOSS bonus items are SOLID_TRIGGER touch, and MOVETYPE_TOSS
@ -334,10 +334,10 @@ void SV_AddGravity (edict_t *ent)
} }
/* /*
* Returns the actual bounding box of a bmodel. * Returns the actual bounding box of a bmodel.
* This is a big improvement over what q2 normally * This is a big improvement over what q2 normally
* does with rotating bmodels - q2 sets absmin, * does with rotating bmodels - q2 sets absmin,
* absmax to a cube that will completely contain * absmax to a cube that will completely contain
* the bmodel at *any* rotation on *any* axis, whether * the bmodel at *any* rotation on *any* axis, whether
* the bmodel can actually rotate to that angle or not. * the bmodel can actually rotate to that angle or not.
* This leads to a lot of false block tests in SV_Push * This leads to a lot of false block tests in SV_Push
@ -426,12 +426,12 @@ RealBoundingBox(edict_t *ent, vec3_t mins, vec3_t maxs)
if (mins[1] > p[i][1]) if (mins[1] > p[i][1])
{ {
mins[1] = p[i][1]; mins[1] = p[i][1];
} }
if (mins[2] > p[i][2]) if (mins[2] > p[i][2])
{ {
mins[2] = p[i][2]; mins[2] = p[i][2];
} }
if (maxs[0] < p[i][0]) if (maxs[0] < p[i][0])
{ {
@ -532,7 +532,6 @@ qboolean SV_Push (edict_t *pusher, vec3_t move, vec3_t amove)
{ {
int i, e; int i, e;
edict_t *check, *block; edict_t *check, *block;
vec3_t mins, maxs;
pushed_t *p; pushed_t *p;
vec3_t org, org2, move2, forward, right, up; vec3_t org, org2, move2, forward, right, up;
vec3_t realmins, realmaxs; vec3_t realmins, realmaxs;
@ -555,13 +554,6 @@ qboolean SV_Push (edict_t *pusher, vec3_t move, vec3_t amove)
move[i] = 0.125 * (int)temp; move[i] = 0.125 * (int)temp;
} }
// find the bounding box
for (i=0 ; i<3 ; i++)
{
mins[i] = pusher->absmin[i] + move[i];
maxs[i] = pusher->absmax[i] + move[i];
}
// we need this for pushing things later // we need this for pushing things later
VectorSubtract (vec3_origin, amove, org); VectorSubtract (vec3_origin, amove, org);
AngleVectors (org, forward, right, up); AngleVectors (org, forward, right, up);
@ -579,7 +571,7 @@ qboolean SV_Push (edict_t *pusher, vec3_t move, vec3_t amove)
VectorAdd (pusher->s.angles, amove, pusher->s.angles); VectorAdd (pusher->s.angles, amove, pusher->s.angles);
gi.linkentity (pusher); gi.linkentity (pusher);
/* Create a real bounding box for /* Create a real bounding box for
rotating brush models. */ rotating brush models. */
RealBoundingBox(pusher,realmins,realmaxs); RealBoundingBox(pusher,realmins,realmaxs);
@ -624,7 +616,7 @@ qboolean SV_Push (edict_t *pusher, vec3_t move, vec3_t amove)
VectorCopy (check->s.angles, pushed_p->angles); VectorCopy (check->s.angles, pushed_p->angles);
pushed_p++; pushed_p++;
// try moving the contacted entity // try moving the contacted entity
VectorAdd (check->s.origin, move, check->s.origin); VectorAdd (check->s.origin, move, check->s.origin);
if (check->client) if (check->client)
{ // FIXME: doesn't rotate monsters? { // FIXME: doesn't rotate monsters?
@ -858,7 +850,7 @@ void SV_Physics_Toss (edict_t *ent)
// add gravity // add gravity
if (ent->movetype != MOVETYPE_FLY if (ent->movetype != MOVETYPE_FLY
&& ent->movetype != MOVETYPE_FLYMISSILE && ent->movetype != MOVETYPE_FLYMISSILE
&& ent->movetype != MOVETYPE_BOUNCEFLY) && ent->movetype != MOVETYPE_BOUNCEFLY)
SV_AddGravity (ent); SV_AddGravity (ent);

View file

@ -279,7 +279,7 @@ spawn_t spawns[] = {
{"monster_handler", SP_monster_handler}, {"monster_handler", SP_monster_handler},
{"misc_commdish", SP_misc_commdish}, {"misc_commdish", SP_misc_commdish},
// mirror level's // mirror level's
{"load_mirrorlevel", SP_load_mirrorlevel}, {"load_mirrorlevel", SP_load_mirrorlevel},
{"misc_crate", SP_misc_crate}, {"misc_crate", SP_misc_crate},
@ -350,7 +350,7 @@ char *ED_NewString (const char *string)
{ {
char *newb, *new_p; char *newb, *new_p;
int i,l; int i,l;
if (!string) if (!string)
{ {
return NULL; return NULL;
@ -375,7 +375,7 @@ char *ED_NewString (const char *string)
else else
*new_p++ = string[i]; *new_p++ = string[i];
} }
return newb; return newb;
} }
@ -466,7 +466,7 @@ char *ED_ParseEdict (char *data, edict_t *ent)
// go through all the dictionary pairs // go through all the dictionary pairs
while (1) while (1)
{ {
// parse key // parse key
com_token = COM_Parse (&data); com_token = COM_Parse (&data);
if (com_token[0] == '}') if (com_token[0] == '}')
@ -475,8 +475,8 @@ char *ED_ParseEdict (char *data, edict_t *ent)
gi.error ("ED_ParseEntity: EOF without closing brace"); gi.error ("ED_ParseEntity: EOF without closing brace");
strncpy (keyname, com_token, sizeof(keyname)-1); strncpy (keyname, com_token, sizeof(keyname)-1);
// parse value // parse value
com_token = COM_Parse (&data); com_token = COM_Parse (&data);
if (!data) if (!data)
gi.error ("ED_ParseEntity: EOF without closing brace"); gi.error ("ED_ParseEntity: EOF without closing brace");
@ -484,7 +484,7 @@ char *ED_ParseEdict (char *data, edict_t *ent)
if (com_token[0] == '}') if (com_token[0] == '}')
gi.error ("ED_ParseEntity: closing brace without data"); gi.error ("ED_ParseEntity: closing brace without data");
init = true; init = true;
// keynames with a leading underscore are used for utility comments, // keynames with a leading underscore are used for utility comments,
// and are immediately discarded by quake // and are immediately discarded by quake
@ -572,7 +572,6 @@ void SpawnEntities (const char *mapname, char *entities, const char *spawnpoint)
const char *com_token; const char *com_token;
int i; int i;
float skill_level; float skill_level;
int oldmaxent;
skill_level = floor (skill->value); skill_level = floor (skill->value);
if (skill_level < 0) if (skill_level < 0)
@ -602,7 +601,7 @@ void SpawnEntities (const char *mapname, char *entities, const char *spawnpoint)
// parse ents // parse ents
while (1) while (1)
{ {
// parse the opening brace // parse the opening brace
com_token = COM_Parse (&entities); com_token = COM_Parse (&entities);
if (!entities) if (!entities)
break; break;
@ -627,7 +626,7 @@ void SpawnEntities (const char *mapname, char *entities, const char *spawnpoint)
{ {
if ( (ent->spawnflags & SPAWNFLAG_NOT_DEATHMATCH) || (ent->spawnflags2 & SPAWNFLAG2_NOT_SINGLE) ) if ( (ent->spawnflags & SPAWNFLAG_NOT_DEATHMATCH) || (ent->spawnflags2 & SPAWNFLAG2_NOT_SINGLE) )
{ {
G_FreeEdict (ent); G_FreeEdict (ent);
inhibit++; inhibit++;
continue; continue;
} }
@ -667,7 +666,7 @@ void SpawnEntities (const char *mapname, char *entities, const char *spawnpoint)
(((skill->value == SKILL_HARD) || (skill->value == SKILL_HARDPLUS)) && (ent->spawnflags & SPAWNFLAG_NOT_HARD)) (((skill->value == SKILL_HARD) || (skill->value == SKILL_HARDPLUS)) && (ent->spawnflags & SPAWNFLAG_NOT_HARD))
) )
{ {
G_FreeEdict (ent); G_FreeEdict (ent);
inhibit++; inhibit++;
continue; continue;
} }
@ -677,9 +676,7 @@ void SpawnEntities (const char *mapname, char *entities, const char *spawnpoint)
} }
ED_CallSpawn (ent); ED_CallSpawn (ent);
} }
oldmaxent = globals.num_edicts;
gi.dprintf("%i entities created\n", globals.num_edicts); gi.dprintf("%i entities created\n", globals.num_edicts);
gi.dprintf ("%i entities inhibited\n", inhibit); gi.dprintf ("%i entities inhibited\n", inhibit);
@ -694,7 +691,7 @@ void SpawnEntities (const char *mapname, char *entities, const char *spawnpoint)
//=================================================================== //===================================================================
char *single_statusbar = char *single_statusbar =
"yb -24 " "yb -24 "
// health // health
@ -745,7 +742,7 @@ char *single_statusbar =
" pic 9 " " pic 9 "
"endif " "endif "
// help / weapon icon // help / weapon icon
"if 11 " "if 11 "
" xv 148 " " xv 148 "
" pic 11 " " pic 11 "
@ -814,7 +811,7 @@ char *dm_statusbar =
" pic 9 " " pic 9 "
"endif " "endif "
// help / weapon icon // help / weapon icon
"if 11 " "if 11 "
" xv 148 " " xv 148 "
" pic 11 " " pic 11 "
@ -937,9 +934,9 @@ void SP_worldspawn (edict_t *ent)
gi.soundindex ("*death3.wav"); gi.soundindex ("*death3.wav");
gi.soundindex ("*death4.wav"); gi.soundindex ("*death4.wav");
gi.soundindex ("*fall1.wav"); gi.soundindex ("*fall1.wav");
gi.soundindex ("*fall2.wav"); gi.soundindex ("*fall2.wav");
gi.soundindex ("*gurp1.wav"); // drowning damage gi.soundindex ("*gurp1.wav"); // drowning damage
gi.soundindex ("*gurp2.wav"); gi.soundindex ("*gurp2.wav");
gi.soundindex ("*jump1.wav"); // player jump gi.soundindex ("*jump1.wav"); // player jump
gi.soundindex ("*pain25_1.wav"); gi.soundindex ("*pain25_1.wav");
gi.soundindex ("*pain25_2.wav"); gi.soundindex ("*pain25_2.wav");
@ -959,7 +956,7 @@ void SP_worldspawn (edict_t *ent)
gi.soundindex ("player/watr_out.wav"); // feet leaving water gi.soundindex ("player/watr_out.wav"); // feet leaving water
gi.soundindex ("player/watr_un.wav"); // head going underwater gi.soundindex ("player/watr_un.wav"); // head going underwater
gi.soundindex ("player/u_breath1.wav"); gi.soundindex ("player/u_breath1.wav");
gi.soundindex ("player/u_breath2.wav"); gi.soundindex ("player/u_breath2.wav");
@ -988,40 +985,40 @@ void SP_worldspawn (edict_t *ent)
// 0 normal // 0 normal
gi.configstring(CS_LIGHTS+0, "m"); gi.configstring(CS_LIGHTS+0, "m");
// 1 FLICKER (first variety) // 1 FLICKER (first variety)
gi.configstring(CS_LIGHTS+1, "mmnmmommommnonmmonqnmmo"); gi.configstring(CS_LIGHTS+1, "mmnmmommommnonmmonqnmmo");
// 2 SLOW STRONG PULSE // 2 SLOW STRONG PULSE
gi.configstring(CS_LIGHTS+2, "abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba"); gi.configstring(CS_LIGHTS+2, "abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba");
// 3 CANDLE (first variety) // 3 CANDLE (first variety)
gi.configstring(CS_LIGHTS+3, "mmmmmaaaaammmmmaaaaaabcdefgabcdefg"); gi.configstring(CS_LIGHTS+3, "mmmmmaaaaammmmmaaaaaabcdefgabcdefg");
// 4 FAST STROBE // 4 FAST STROBE
gi.configstring(CS_LIGHTS+4, "mamamamamama"); gi.configstring(CS_LIGHTS+4, "mamamamamama");
// 5 GENTLE PULSE 1 // 5 GENTLE PULSE 1
gi.configstring(CS_LIGHTS+5,"jklmnopqrstuvwxyzyxwvutsrqponmlkj"); gi.configstring(CS_LIGHTS+5,"jklmnopqrstuvwxyzyxwvutsrqponmlkj");
// 6 FLICKER (second variety) // 6 FLICKER (second variety)
gi.configstring(CS_LIGHTS+6, "nmonqnmomnmomomno"); gi.configstring(CS_LIGHTS+6, "nmonqnmomnmomomno");
// 7 CANDLE (second variety) // 7 CANDLE (second variety)
gi.configstring(CS_LIGHTS+7, "mmmaaaabcdefgmmmmaaaammmaamm"); gi.configstring(CS_LIGHTS+7, "mmmaaaabcdefgmmmmaaaammmaamm");
// 8 CANDLE (third variety) // 8 CANDLE (third variety)
gi.configstring(CS_LIGHTS+8, "mmmaaammmaaammmabcdefaaaammmmabcdefmmmaaaa"); gi.configstring(CS_LIGHTS+8, "mmmaaammmaaammmabcdefaaaammmmabcdefmmmaaaa");
// 9 SLOW STROBE (fourth variety) // 9 SLOW STROBE (fourth variety)
gi.configstring(CS_LIGHTS+9, "aaaaaaaazzzzzzzz"); gi.configstring(CS_LIGHTS+9, "aaaaaaaazzzzzzzz");
// 10 FLUORESCENT FLICKER // 10 FLUORESCENT FLICKER
gi.configstring(CS_LIGHTS+10, "mmamammmmammamamaaamammma"); gi.configstring(CS_LIGHTS+10, "mmamammmmammamamaaamammma");
// 11 SLOW PULSE NOT FADE TO BLACK // 11 SLOW PULSE NOT FADE TO BLACK
gi.configstring(CS_LIGHTS+11, "abcdefghijklmnopqrrqponmlkjihgfedcba"); gi.configstring(CS_LIGHTS+11, "abcdefghijklmnopqrrqponmlkjihgfedcba");
// styles 32-62 are assigned by the light program for switchable lights // styles 32-62 are assigned by the light program for switchable lights
// 63 testing // 63 testing

View file

@ -386,7 +386,7 @@ void use_target_changelevel (edict_t *self, edict_t *other, edict_t *activator)
} }
// if going to a new unit, clear cross triggers // if going to a new unit, clear cross triggers
if (strstr(self->map, "*")) if (strstr(self->map, "*"))
game.serverflags &= ~(SFL_CROSS_TRIGGER_MASK); game.serverflags &= ~(SFL_CROSS_TRIGGER_MASK);
BeginIntermission (self); BeginIntermission (self);
@ -534,8 +534,6 @@ speed default is 1000
void use_target_blaster (edict_t *self, edict_t *other, edict_t *activator) void use_target_blaster (edict_t *self, edict_t *other, edict_t *activator)
{ {
int effect;
if (!self) if (!self)
{ {
return; return;
@ -547,13 +545,6 @@ void use_target_blaster (edict_t *self, edict_t *other, edict_t *activator)
return; return;
} }
if (self->spawnflags & 2)
effect = 0;
else if (self->spawnflags & 1)
effect = EF_HYPERBLASTER;
else
effect = EF_BLASTER;
fire_blaster (self, self->s.origin, self->movedir, self->dmg, self->speed, EF_BLASTER, MOD_TARGET_BLASTER); fire_blaster (self, self->s.origin, self->movedir, self->dmg, self->speed, EF_BLASTER, MOD_TARGET_BLASTER);
gi.sound (self, CHAN_VOICE, self->noise_index, 1, ATTN_NORM, 0); gi.sound (self, CHAN_VOICE, self->noise_index, 1, ATTN_NORM, 0);
} }

View file

@ -288,7 +288,7 @@ Must NOT be on the team with the rest of the turret parts.
Instead it must target the turret_breach. Instead it must target the turret_breach.
*/ */
void infantry_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage); void infantry_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point);
void infantry_stand (edict_t *self); void infantry_stand (edict_t *self);
void monster_use (edict_t *self, edict_t *other, edict_t *activator); void monster_use (edict_t *self, edict_t *other, edict_t *activator);
@ -314,7 +314,7 @@ void turret_driver_die (edict_t *self, edict_t *inflictor, edict_t *attacker, in
self->target_ent->owner = NULL; self->target_ent->owner = NULL;
self->target_ent->teammaster->owner = NULL; self->target_ent->teammaster->owner = NULL;
infantry_die (self, inflictor, attacker, damage); infantry_die (self, inflictor, attacker, damage, point);
} }
qboolean FindTarget (edict_t *self); qboolean FindTarget (edict_t *self);

View file

@ -187,7 +187,7 @@ void zboss_standidle (edict_t *self)
} }
} }
// //
// Post WALK/RUN leading into ilde. // Post WALK/RUN leading into ilde.
// //
@ -245,7 +245,7 @@ mframe_t zboss_frames_walk [] =
{ai_walk, 4, NULL}, // 170 {ai_walk, 4, NULL}, // 170
{ai_walk, 4, NULL}, {ai_walk, 4, NULL},
{ai_walk, 4, NULL}, {ai_walk, 4, NULL},
{ai_walk, 3, NULL}, {ai_walk, 3, NULL},
{ai_walk, 2, NULL}, {ai_walk, 2, NULL},
{ai_walk, 2, NULL}, {ai_walk, 2, NULL},
{ai_walk, 3, zboss_walksound}, // 176 {ai_walk, 3, zboss_walksound}, // 176
@ -302,7 +302,7 @@ mframe_t zboss_frames_run [] =
{ai_run, 4, NULL}, // 170 {ai_run, 4, NULL}, // 170
{ai_run, 4, NULL}, {ai_run, 4, NULL},
{ai_run, 4, NULL}, {ai_run, 4, NULL},
{ai_run, 3, NULL}, {ai_run, 3, NULL},
{ai_run, 2, NULL}, {ai_run, 2, NULL},
{ai_run, 2, NULL}, {ai_run, 2, NULL},
{ai_run, 3, zboss_walksound}, // 176 {ai_run, 3, zboss_walksound}, // 176
@ -345,9 +345,9 @@ void zboss_stand (edict_t *self)
return; return;
} }
if(self->monsterinfo.currentmove == &zboss_move_prewalk || if(self->monsterinfo.currentmove == &zboss_move_prewalk ||
self->monsterinfo.currentmove == &zboss_move_walk || self->monsterinfo.currentmove == &zboss_move_walk ||
self->monsterinfo.currentmove == &zboss_move_prerun || self->monsterinfo.currentmove == &zboss_move_prerun ||
self->monsterinfo.currentmove == &zboss_move_run) self->monsterinfo.currentmove == &zboss_move_run)
{ {
zboss_postWalkRun(self); zboss_postWalkRun(self);
@ -596,7 +596,7 @@ void zboss_melee (edict_t *self)
mframe_t zboss_frames_attack1b [] = mframe_t zboss_frames_attack1b [] =
{ {
{ai_charge, 0, NULL}, // 92 {ai_charge, 0, NULL}, // 92
{ai_charge, 0, NULL}, {ai_charge, 0, NULL},
{ai_charge, 0, NULL}, {ai_charge, 0, NULL},
{ai_charge, 0, NULL}, {ai_charge, 0, NULL},
{ai_charge, 0, NULL}, {ai_charge, 0, NULL},
@ -618,7 +618,7 @@ void zboss_reloadRockets(edict_t *self)
} }
static vec3_t rocketoffset[] = static vec3_t rocketoffset[] =
{ {
{-5, -50, 33}, {-5, -50, 33},
{-5, -39, 27}, {-5, -39, 27},
@ -659,7 +659,7 @@ void FireFlare(edict_t *self)
VectorSubtract (vec, start, dir); VectorSubtract (vec, start, dir);
VectorNormalize (dir); VectorNormalize (dir);
if(!(self->monsterinfo.aiflags & AI_ONESHOTTARGET)) if(!(self->monsterinfo.aiflags & AI_ONESHOTTARGET))
{ {
ANIM_AIM(self, dir); ANIM_AIM(self, dir);
@ -794,7 +794,7 @@ mmove_t zboss_move_attack2b = {FRAME_attack2bStart, FRAME_attack2bEnd, zboss_fra
void HookDragThink (edict_t *self) void HookDragThink (edict_t *self)
{ {
vec3_t dir, vec; vec3_t dir, vec;
float length, speed; float speed;
vec3_t hookoffset = {-5, -24, 34}; vec3_t hookoffset = {-5, -24, 34};
vec3_t forward, right; vec3_t forward, right;
@ -809,7 +809,6 @@ void HookDragThink (edict_t *self)
} }
VectorSubtract (self->owner->s.origin, self->s.origin, dir); VectorSubtract (self->owner->s.origin, self->s.origin, dir);
length = VectorLength (dir);
AngleVectors (self->owner->s.angles, forward, right, NULL); AngleVectors (self->owner->s.angles, forward, right, NULL);
G_ProjectSource(self->owner->s.origin, hookoffset, forward, right, vec); G_ProjectSource(self->owner->s.origin, hookoffset, forward, right, vec);
@ -918,11 +917,11 @@ void FireHook(edict_t *self)
vec[2] += self->enemy->viewheight; vec[2] += self->enemy->viewheight;
VectorSubtract (vec, start, dir); VectorSubtract (vec, start, dir);
VectorNormalize (dir); VectorNormalize (dir);
ANIM_AIM(self, dir); ANIM_AIM(self, dir);
self->s.modelindex3 = 0; self->s.modelindex3 = 0;
speed = 1000; speed = 1000;
gi.sound (self, CHAN_WEAPON, sound_hooklaunch, 1, ATTN_NORM, 0); gi.sound (self, CHAN_WEAPON, sound_hooklaunch, 1, ATTN_NORM, 0);
@ -1149,7 +1148,7 @@ void fire_plasmaCannon (edict_t *self, vec3_t start, vec3_t aimdir, int damage,
} }
static vec3_t cannonoffset[] = static vec3_t cannonoffset[] =
{ {
{-19, -44, 30}, {-19, -44, 30},
{-14, -33, 32}, {-14, -33, 32},
@ -1209,7 +1208,7 @@ void FireCannon(edict_t *self)
{ {
distance = 700; distance = 700;
} }
if(skill->value < SKILL_HARD) if(skill->value < SKILL_HARD)
{ {
fire_plasmaCannon (self, start, dir, 90, 700, 2.5, 90+40, distance); fire_plasmaCannon (self, start, dir, 90, 700, 2.5, 90+40, distance);
@ -1447,7 +1446,7 @@ void FireDeadRocket1(edict_t *self)
AngleVectors (self->s.angles, forward, right, NULL); AngleVectors (self->s.angles, forward, right, NULL);
G_ProjectSource (self->s.origin, rocketoffset, forward, right, start); G_ProjectSource (self->s.origin, rocketoffset, forward, right, start);
fire_rocket (self, start, forward, 70, 500, 70+20, 70); fire_rocket (self, start, forward, 70, 500, 70+20, 70);
gi.WriteByte (svc_muzzleflash2); gi.WriteByte (svc_muzzleflash2);
@ -1470,7 +1469,7 @@ void FireDeadRocket2(edict_t *self)
AngleVectors (self->s.angles, forward, right, NULL); AngleVectors (self->s.angles, forward, right, NULL);
G_ProjectSource (self->s.origin, rocketoffset, forward, right, start); G_ProjectSource (self->s.origin, rocketoffset, forward, right, start);
forward[1] += 10; forward[1] += 10;
fire_rocket (self, start, forward, 70, 500, 70+20, 70); fire_rocket (self, start, forward, 70, 500, 70+20, 70);
@ -1494,7 +1493,7 @@ void FireDeadRocket3(edict_t *self)
AngleVectors (self->s.angles, forward, right, up); AngleVectors (self->s.angles, forward, right, up);
G_ProjectSource (self->s.origin, rocketoffset, forward, right, start); G_ProjectSource (self->s.origin, rocketoffset, forward, right, start);
fire_rocket (self, start, up, 70, 500, 70+20, 70); fire_rocket (self, start, up, 70, 500, 70+20, 70);
gi.WriteByte (svc_muzzleflash2); gi.WriteByte (svc_muzzleflash2);
@ -1517,7 +1516,7 @@ void FireDeadRocket4(edict_t *self)
AngleVectors (self->s.angles, forward, right, up); AngleVectors (self->s.angles, forward, right, up);
G_ProjectSource (self->s.origin, rocketoffset, forward, right, start); G_ProjectSource (self->s.origin, rocketoffset, forward, right, start);
fire_rocket (self, start, up, 70, 500, 70+20, 70); fire_rocket (self, start, up, 70, 500, 70+20, 70);
gi.WriteByte (svc_muzzleflash2); gi.WriteByte (svc_muzzleflash2);
@ -1614,7 +1613,7 @@ void FireDeadCannon1(edict_t *self)
AngleVectors (self->s.angles, forward, right, NULL); AngleVectors (self->s.angles, forward, right, NULL);
G_ProjectSource (self->s.origin, cannonoffset, forward, right, start); G_ProjectSource (self->s.origin, cannonoffset, forward, right, start);
fire_plasmaCannon (self, start, forward, 90, 700, 2.5, 90+40, 700); fire_plasmaCannon (self, start, forward, 90, 700, 2.5, 90+40, 700);
gi.WriteByte (svc_muzzleflash2); gi.WriteByte (svc_muzzleflash2);
@ -1637,7 +1636,7 @@ void FireDeadCannon2(edict_t *self)
AngleVectors (self->s.angles, forward, right, NULL); AngleVectors (self->s.angles, forward, right, NULL);
G_ProjectSource (self->s.origin, cannonoffset, forward, right, start); G_ProjectSource (self->s.origin, cannonoffset, forward, right, start);
fire_plasmaCannon (self, start, forward, 90, 700, 2.5, 90+40, 700); fire_plasmaCannon (self, start, forward, 90, 700, 2.5, 90+40, 700);
gi.WriteByte (svc_muzzleflash2); gi.WriteByte (svc_muzzleflash2);
@ -1660,7 +1659,7 @@ void FireDeadCannon3(edict_t *self)
AngleVectors (self->s.angles, forward, right, NULL); AngleVectors (self->s.angles, forward, right, NULL);
G_ProjectSource (self->s.origin, cannonoffset, forward, right, start); G_ProjectSource (self->s.origin, cannonoffset, forward, right, start);
fire_plasmaCannon (self, start, forward, 90, 700, 2.5, 90+40, 700); fire_plasmaCannon (self, start, forward, 90, 700, 2.5, 90+40, 700);
gi.WriteByte (svc_muzzleflash2); gi.WriteByte (svc_muzzleflash2);
@ -1707,9 +1706,9 @@ void FireDeadGrapple(edict_t *self)
AngleVectors (self->s.angles, forward, right, up); AngleVectors (self->s.angles, forward, right, up);
G_ProjectSource (self->s.origin, hookoffset, forward, right, start); G_ProjectSource (self->s.origin, hookoffset, forward, right, start);
self->s.modelindex3 = 0; self->s.modelindex3 = 0;
speed = 500; speed = 500;
gi.sound (self, CHAN_WEAPON, sound_hooklaunch, 1, ATTN_NORM, 0); gi.sound (self, CHAN_WEAPON, sound_hooklaunch, 1, ATTN_NORM, 0);
@ -1762,9 +1761,9 @@ mframe_t zboss_frames_death2 [] =
{ai_move, 0, FireDeadCannon1}, // 257 {ai_move, 0, FireDeadCannon1}, // 257
{ai_move, 0, FireDeadCannon2}, // 258 {ai_move, 0, FireDeadCannon2}, // 258
{ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, FireDeadCannon3}, // 264 {ai_move, 0, FireDeadCannon3}, // 264
@ -1847,11 +1846,11 @@ End Death Stuff
*/ */
void SP_monster_zboss_precache(void) void SP_monster_zboss_precache(void)
{ {
sound_pain1 = gi.soundindex ("monsters/bossz/bpain1.wav"); sound_pain1 = gi.soundindex ("monsters/bossz/bpain1.wav");
sound_pain2 = gi.soundindex ("monsters/bossz/bpain2.wav"); sound_pain2 = gi.soundindex ("monsters/bossz/bpain2.wav");
sound_pain3 = gi.soundindex ("monsters/bossz/bpain3.wav"); sound_pain3 = gi.soundindex ("monsters/bossz/bpain3.wav");
sound_die1 = gi.soundindex ("monsters/bossz/bdeth1.wav"); sound_die1 = gi.soundindex ("monsters/bossz/bdeth1.wav");
sound_die2 = gi.soundindex ("monsters/bossz/bdeth2.wav"); sound_die2 = gi.soundindex ("monsters/bossz/bdeth2.wav");
sound_hooklaunch = gi.soundindex("monsters/bossz/bhlaunch.wav"); sound_hooklaunch = gi.soundindex("monsters/bossz/bhlaunch.wav");
sound_hookimpact = gi.soundindex("monsters/bossz/bhimpact.wav"); sound_hookimpact = gi.soundindex("monsters/bossz/bhimpact.wav");
sound_hookfly = gi.soundindex("monsters/bossz/bhfly.wav"); sound_hookfly = gi.soundindex("monsters/bossz/bhfly.wav");
@ -1936,13 +1935,13 @@ void SP_monster_zboss (edict_t *self)
gi.linkentity (self); gi.linkentity (self);
self->monsterinfo.currentmove = &zboss_stand1; self->monsterinfo.currentmove = &zboss_stand1;
self->monsterinfo.scale = MODEL_SCALE; self->monsterinfo.scale = MODEL_SCALE;
walkmonster_start (self); walkmonster_start (self);
} }
/*QUAKED target_zboss_target /*QUAKED target_zboss_target
*/ */
void trigger_zboss (edict_t *self, edict_t *other, edict_t *activator) void trigger_zboss (edict_t *self, edict_t *other, edict_t *activator)

View file

@ -79,7 +79,7 @@ void Boss2Rocket (edict_t *self)
VectorSubtract (vec, start, dir); VectorSubtract (vec, start, dir);
VectorNormalize (dir); VectorNormalize (dir);
monster_fire_rocket (self, start, dir, 50, 500, MZ2_BOSS2_ROCKET_4); monster_fire_rocket (self, start, dir, 50, 500, MZ2_BOSS2_ROCKET_4);
} }
void boss2_firebullet_right (edict_t *self) void boss2_firebullet_right (edict_t *self)
{ {
@ -106,7 +106,7 @@ void boss2_firebullet_right (edict_t *self)
} }
monster_fire_bullet (self, start, forward, 6, 4, DEFAULT_BULLET_HSPREAD, DEFAULT_BULLET_VSPREAD, MZ2_BOSS2_MACHINEGUN_R1); monster_fire_bullet (self, start, forward, 6, 4, DEFAULT_BULLET_HSPREAD, DEFAULT_BULLET_VSPREAD, MZ2_BOSS2_MACHINEGUN_R1);
} }
void boss2_firebullet_left (edict_t *self) void boss2_firebullet_left (edict_t *self)
{ {
@ -134,7 +134,7 @@ void boss2_firebullet_left (edict_t *self)
} }
monster_fire_bullet (self, start, forward, 6, 4, DEFAULT_BULLET_HSPREAD, DEFAULT_BULLET_VSPREAD, MZ2_BOSS2_MACHINEGUN_L1); monster_fire_bullet (self, start, forward, 6, 4, DEFAULT_BULLET_HSPREAD, DEFAULT_BULLET_VSPREAD, MZ2_BOSS2_MACHINEGUN_L1);
} }
void Boss2MachineGun (edict_t *self) void Boss2MachineGun (edict_t *self)
{ {
@ -458,7 +458,7 @@ void boss2_attack (edict_t *self)
{ {
self->monsterinfo.currentmove = &boss2_move_attack_pre_mg; self->monsterinfo.currentmove = &boss2_move_attack_pre_mg;
} }
else else
{ {
if (random() <= 0.6) if (random() <= 0.6)
self->monsterinfo.currentmove = &boss2_move_attack_pre_mg; self->monsterinfo.currentmove = &boss2_move_attack_pre_mg;
@ -519,7 +519,7 @@ void boss2_pain (edict_t *self, edict_t *other, float kick, int damage)
gi.sound (self, CHAN_VOICE, sound_pain1, 1, ATTN_NONE, 0); gi.sound (self, CHAN_VOICE, sound_pain1, 1, ATTN_NONE, 0);
self->monsterinfo.currentmove = &boss2_move_pain_light; self->monsterinfo.currentmove = &boss2_move_pain_light;
} }
else else
{ {
gi.sound (self, CHAN_VOICE, sound_pain2, 1, ATTN_NONE, 0); gi.sound (self, CHAN_VOICE, sound_pain2, 1, ATTN_NONE, 0);
self->monsterinfo.currentmove = &boss2_move_pain_heavy; self->monsterinfo.currentmove = &boss2_move_pain_heavy;
@ -561,7 +561,6 @@ qboolean Boss2_CheckAttack (edict_t *self)
vec3_t temp; vec3_t temp;
float chance; float chance;
trace_t tr; trace_t tr;
qboolean enemy_infront;
int enemy_range; int enemy_range;
float enemy_yaw; float enemy_yaw;
@ -584,8 +583,7 @@ qboolean Boss2_CheckAttack (edict_t *self)
if (tr.ent != self->enemy) if (tr.ent != self->enemy)
return false; return false;
} }
enemy_infront = infront(self, self->enemy);
enemy_range = range(self, self->enemy); enemy_range = range(self, self->enemy);
VectorSubtract (self->enemy->s.origin, self->s.origin, temp); VectorSubtract (self->enemy->s.origin, self->s.origin, temp);
enemy_yaw = vectoyaw(temp); enemy_yaw = vectoyaw(temp);
@ -602,14 +600,14 @@ qboolean Boss2_CheckAttack (edict_t *self)
self->monsterinfo.attack_state = AS_MISSILE; self->monsterinfo.attack_state = AS_MISSILE;
return true; return true;
} }
// missile attack // missile attack
if (!self->monsterinfo.attack) if (!self->monsterinfo.attack)
return false; return false;
if (level.time < self->monsterinfo.attack_finished) if (level.time < self->monsterinfo.attack_finished)
return false; return false;
if (enemy_range == RANGE_FAR) if (enemy_range == RANGE_FAR)
return false; return false;
@ -700,7 +698,7 @@ void SP_monster_boss2 (edict_t *self)
self->monsterinfo.checkattack = Boss2_CheckAttack; self->monsterinfo.checkattack = Boss2_CheckAttack;
gi.linkentity (self); gi.linkentity (self);
self->monsterinfo.currentmove = &boss2_move_stand; self->monsterinfo.currentmove = &boss2_move_stand;
self->monsterinfo.scale = MODEL_SCALE; self->monsterinfo.scale = MODEL_SCALE;
flymonster_start (self); flymonster_start (self);

View file

@ -331,10 +331,10 @@ mframe_t jorg_frames_death1 [] =
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, // 30 {ai_move, 0, NULL}, // 30
@ -351,10 +351,10 @@ mframe_t jorg_frames_death1 [] =
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, MakronToss}, {ai_move, 0, MakronToss},
{ai_move, 0, BossExplode} // 50 {ai_move, 0, BossExplode} // 50
@ -369,7 +369,7 @@ mframe_t jorg_frames_attack2 []=
{ai_charge, 0, NULL}, {ai_charge, 0, NULL},
{ai_charge, 0, NULL}, {ai_charge, 0, NULL},
{ai_charge, 0, NULL}, {ai_charge, 0, NULL},
{ai_charge, 0, jorgBFG}, {ai_charge, 0, jorgBFG},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
@ -425,12 +425,12 @@ void jorg_reattack1(edict_t *self)
else else
{ {
self->s.sound = 0; self->s.sound = 0;
self->monsterinfo.currentmove = &jorg_move_end_attack1; self->monsterinfo.currentmove = &jorg_move_end_attack1;
} }
else else
{ {
self->s.sound = 0; self->s.sound = 0;
self->monsterinfo.currentmove = &jorg_move_end_attack1; self->monsterinfo.currentmove = &jorg_move_end_attack1;
} }
} }
@ -453,7 +453,7 @@ void jorg_pain (edict_t *self, edict_t *other, float kick, int damage)
if (self->health < (self->max_health / 2)) if (self->health < (self->max_health / 2))
self->s.skinnum = 1; self->s.skinnum = 1;
self->s.sound = 0; self->s.sound = 0;
if (level.time < self->pain_debounce_time) if (level.time < self->pain_debounce_time)
@ -464,11 +464,11 @@ void jorg_pain (edict_t *self, edict_t *other, float kick, int damage)
if (random()<=0.6) if (random()<=0.6)
return; return;
/* /*
If he's entering his attack1 or using attack1, lessen the chance of him If he's entering his attack1 or using attack1, lessen the chance of him
going into pain going into pain
*/ */
if ( (self->s.frame >= FRAME_attak101) && (self->s.frame <= FRAME_attak108) ) if ( (self->s.frame >= FRAME_attak101) && (self->s.frame <= FRAME_attak108) )
if (random() <= 0.005) if (random() <= 0.005)
return; return;
@ -528,7 +528,7 @@ void jorgBFG (edict_t *self)
VectorNormalize (dir); VectorNormalize (dir);
gi.sound (self, CHAN_VOICE, sound_attack2, 1, ATTN_NORM, 0); gi.sound (self, CHAN_VOICE, sound_attack2, 1, ATTN_NORM, 0);
monster_fire_bfg (self, start, dir, 50, 300, 100, 200, MZ2_JORG_BFG_1); monster_fire_bfg (self, start, dir, 50, 300, 100, 200, MZ2_JORG_BFG_1);
} }
void jorg_firebullet_right (edict_t *self) void jorg_firebullet_right (edict_t *self)
{ {
@ -555,7 +555,7 @@ void jorg_firebullet_right (edict_t *self)
} }
monster_fire_bullet (self, start, forward, 6, 4, DEFAULT_BULLET_HSPREAD, DEFAULT_BULLET_VSPREAD, MZ2_JORG_MACHINEGUN_R1); monster_fire_bullet (self, start, forward, 6, 4, DEFAULT_BULLET_HSPREAD, DEFAULT_BULLET_VSPREAD, MZ2_JORG_MACHINEGUN_R1);
} }
void jorg_firebullet_left (edict_t *self) void jorg_firebullet_left (edict_t *self)
{ {
@ -582,7 +582,7 @@ void jorg_firebullet_left (edict_t *self)
} }
monster_fire_bullet (self, start, forward, 6, 4, DEFAULT_BULLET_HSPREAD, DEFAULT_BULLET_VSPREAD, MZ2_JORG_MACHINEGUN_L1); monster_fire_bullet (self, start, forward, 6, 4, DEFAULT_BULLET_HSPREAD, DEFAULT_BULLET_VSPREAD, MZ2_JORG_MACHINEGUN_L1);
} }
void jorg_firebullet (edict_t *self) void jorg_firebullet (edict_t *self)
{ {
@ -597,17 +597,11 @@ void jorg_firebullet (edict_t *self)
void jorg_attack(edict_t *self) void jorg_attack(edict_t *self)
{ {
vec3_t vec;
float range;
if (!self) if (!self)
{ {
return; return;
} }
VectorSubtract (self->enemy->s.origin, self->s.origin, vec);
range = VectorLength (vec);
if (random() <= 0.75) if (random() <= 0.75)
{ {
gi.sound (self, CHAN_VOICE, sound_attack1, 1, ATTN_NORM,0); gi.sound (self, CHAN_VOICE, sound_attack1, 1, ATTN_NORM,0);
@ -647,7 +641,6 @@ qboolean Jorg_CheckAttack (edict_t *self)
vec3_t temp; vec3_t temp;
float chance; float chance;
trace_t tr; trace_t tr;
qboolean enemy_infront;
int enemy_range; int enemy_range;
float enemy_yaw; float enemy_yaw;
@ -670,8 +663,7 @@ qboolean Jorg_CheckAttack (edict_t *self)
if (tr.ent != self->enemy) if (tr.ent != self->enemy)
return false; return false;
} }
enemy_infront = infront(self, self->enemy);
enemy_range = range(self, self->enemy); enemy_range = range(self, self->enemy);
VectorSubtract (self->enemy->s.origin, self->s.origin, temp); VectorSubtract (self->enemy->s.origin, self->s.origin, temp);
enemy_yaw = vectoyaw(temp); enemy_yaw = vectoyaw(temp);
@ -688,14 +680,14 @@ qboolean Jorg_CheckAttack (edict_t *self)
self->monsterinfo.attack_state = AS_MISSILE; self->monsterinfo.attack_state = AS_MISSILE;
return true; return true;
} }
// missile attack // missile attack
if (!self->monsterinfo.attack) if (!self->monsterinfo.attack)
return false; return false;
if (level.time < self->monsterinfo.attack_finished) if (level.time < self->monsterinfo.attack_finished)
return false; return false;
if (enemy_range == RANGE_FAR) if (enemy_range == RANGE_FAR)
return false; return false;
@ -796,7 +788,7 @@ void SP_monster_jorg (edict_t *self)
self->monsterinfo.sight = NULL; self->monsterinfo.sight = NULL;
self->monsterinfo.checkattack = Jorg_CheckAttack; self->monsterinfo.checkattack = Jorg_CheckAttack;
gi.linkentity (self); gi.linkentity (self);
self->monsterinfo.currentmove = &jorg_move_stand; self->monsterinfo.currentmove = &jorg_move_stand;
self->monsterinfo.scale = MODEL_SCALE; self->monsterinfo.scale = MODEL_SCALE;

View file

@ -120,7 +120,7 @@ mframe_t makron_frames_stand []=
{ai_stand, 0, NULL} // 60 {ai_stand, 0, NULL} // 60
}; };
mmove_t makron_move_stand = {FRAME_stand201, FRAME_stand260, makron_frames_stand, NULL}; mmove_t makron_move_stand = {FRAME_stand201, FRAME_stand260, makron_frames_stand, NULL};
void makron_stand (edict_t *self) void makron_stand (edict_t *self)
{ {
if (!self) if (!self)
@ -323,7 +323,7 @@ mframe_t makron_frames_death2 [] =
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, // 30 {ai_move, 0, NULL}, // 30
@ -337,7 +337,6 @@ mframe_t makron_frames_death2 [] =
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, -1, NULL}, {ai_move, -1, NULL},
{ai_move, 2, NULL}, // 40 {ai_move, 2, NULL}, // 40
{ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
@ -345,9 +344,10 @@ mframe_t makron_frames_death2 [] =
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL},
{ai_move, 0, NULL}, // 50 {ai_move, 0, NULL}, // 50
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, -6, NULL}, {ai_move, -6, NULL},
@ -357,7 +357,7 @@ mframe_t makron_frames_death2 [] =
{ai_move, -4, makron_step_left}, {ai_move, -4, makron_step_left},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, // 60 {ai_move, 0, NULL}, // 60
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, -2, NULL}, {ai_move, -2, NULL},
{ai_move, -5, NULL}, {ai_move, -5, NULL},
@ -367,7 +367,7 @@ mframe_t makron_frames_death2 [] =
{ai_move, -7, NULL}, {ai_move, -7, NULL},
{ai_move, -4, NULL}, {ai_move, -4, NULL},
{ai_move, -4, makron_step_right}, // 70 {ai_move, -4, makron_step_right}, // 70
{ai_move, -6, NULL}, {ai_move, -6, NULL},
{ai_move, -7, NULL}, {ai_move, -7, NULL},
{ai_move, 0, makron_step_left}, {ai_move, 0, makron_step_left},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
@ -377,7 +377,7 @@ mframe_t makron_frames_death2 [] =
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, // 80 {ai_move, 0, NULL}, // 80
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
@ -387,7 +387,7 @@ mframe_t makron_frames_death2 [] =
{ai_move, 0, NULL}, {ai_move, 0, NULL},
{ai_move, 2, NULL}, {ai_move, 2, NULL},
{ai_move, 0, NULL}, // 90 {ai_move, 0, NULL}, // 90
{ai_move, 27, makron_hit}, {ai_move, 27, makron_hit},
{ai_move, 26, NULL}, {ai_move, 26, NULL},
{ai_move, 0, makron_brainsplorch}, {ai_move, 0, makron_brainsplorch},
{ai_move, 0, NULL}, {ai_move, 0, NULL},
@ -465,7 +465,7 @@ void makronBFG (edict_t *self)
VectorNormalize (dir); VectorNormalize (dir);
gi.sound (self, CHAN_VOICE, sound_attack_bfg, 1, ATTN_NORM, 0); gi.sound (self, CHAN_VOICE, sound_attack_bfg, 1, ATTN_NORM, 0);
monster_fire_bfg (self, start, dir, 50, 300, 100, 300, MZ2_MAKRON_BFG); monster_fire_bfg (self, start, dir, 50, 300, 100, 300, MZ2_MAKRON_BFG);
} }
mframe_t makron_frames_attack3 []= mframe_t makron_frames_attack3 []=
@ -558,7 +558,7 @@ void MakronRailgun (edict_t *self)
AngleVectors (self->s.angles, forward, right, NULL); AngleVectors (self->s.angles, forward, right, NULL);
G_ProjectSource (self->s.origin, monster_flash_offset[MZ2_MAKRON_RAILGUN_1], forward, right, start); G_ProjectSource (self->s.origin, monster_flash_offset[MZ2_MAKRON_RAILGUN_1], forward, right, start);
// calc direction to where we targted // calc direction to where we targted
VectorSubtract (self->pos1, start, dir); VectorSubtract (self->pos1, start, dir);
VectorNormalize (dir); VectorNormalize (dir);
@ -606,7 +606,7 @@ void MakronHyperblaster (edict_t *self)
AngleVectors (dir, forward, NULL, NULL); AngleVectors (dir, forward, NULL, NULL);
monster_fire_blaster (self, start, forward, 15, 1000, MZ2_MAKRON_BLASTER_1, EF_BLASTER); monster_fire_blaster (self, start, forward, 15, 1000, MZ2_MAKRON_BLASTER_1, EF_BLASTER);
} }
void makron_pain (edict_t *self, edict_t *other, float kick, int damage) void makron_pain (edict_t *self, edict_t *other, float kick, int damage)
@ -674,8 +674,6 @@ void makron_sight(edict_t *self, edict_t *other)
void makron_attack(edict_t *self) void makron_attack(edict_t *self)
{ {
vec3_t vec;
float range;
float r; float r;
if (!self) if (!self)
@ -685,10 +683,6 @@ void makron_attack(edict_t *self)
r = random(); r = random();
VectorSubtract (self->enemy->s.origin, self->s.origin, vec);
range = VectorLength (vec);
if (r <= 0.3) if (r <= 0.3)
self->monsterinfo.currentmove = &makron_move_attack3; self->monsterinfo.currentmove = &makron_move_attack3;
else if (r <= 0.6) else if (r <= 0.6)
@ -799,7 +793,7 @@ void makron_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damag
makron_torso (tempent); makron_torso (tempent);
self->monsterinfo.currentmove = &makron_move_death2; self->monsterinfo.currentmove = &makron_move_death2;
} }
qboolean Makron_CheckAttack (edict_t *self) qboolean Makron_CheckAttack (edict_t *self)
@ -808,7 +802,6 @@ qboolean Makron_CheckAttack (edict_t *self)
vec3_t temp; vec3_t temp;
float chance; float chance;
trace_t tr; trace_t tr;
qboolean enemy_infront;
int enemy_range; int enemy_range;
float enemy_yaw; float enemy_yaw;
@ -831,8 +824,7 @@ qboolean Makron_CheckAttack (edict_t *self)
if (tr.ent != self->enemy) if (tr.ent != self->enemy)
return false; return false;
} }
enemy_infront = infront(self, self->enemy);
enemy_range = range(self, self->enemy); enemy_range = range(self, self->enemy);
VectorSubtract (self->enemy->s.origin, self->s.origin, temp); VectorSubtract (self->enemy->s.origin, self->s.origin, temp);
enemy_yaw = vectoyaw(temp); enemy_yaw = vectoyaw(temp);
@ -849,14 +841,14 @@ qboolean Makron_CheckAttack (edict_t *self)
self->monsterinfo.attack_state = AS_MISSILE; self->monsterinfo.attack_state = AS_MISSILE;
return true; return true;
} }
// missile attack // missile attack
if (!self->monsterinfo.attack) if (!self->monsterinfo.attack)
return false; return false;
if (level.time < self->monsterinfo.attack_finished) if (level.time < self->monsterinfo.attack_finished)
return false; return false;
if (enemy_range == RANGE_FAR) if (enemy_range == RANGE_FAR)
return false; return false;
@ -963,7 +955,7 @@ void SP_monster_makron (edict_t *self)
self->monsterinfo.checkattack = Makron_CheckAttack; self->monsterinfo.checkattack = Makron_CheckAttack;
gi.linkentity (self); gi.linkentity (self);
self->monsterinfo.currentmove = &makron_move_sight; self->monsterinfo.currentmove = &makron_move_sight;
self->monsterinfo.scale = MODEL_SCALE; self->monsterinfo.scale = MODEL_SCALE;

View file

@ -140,7 +140,7 @@ void SP_info_player_coop(edict_t *self)
The deathmatch intermission point will be at one of these The deathmatch intermission point will be at one of these
Use 'angles' instead of 'angle', so you can set pitch or roll as well as yaw. 'pitch yaw roll' Use 'angles' instead of 'angle', so you can set pitch or roll as well as yaw. 'pitch yaw roll'
*/ */
void SP_info_player_intermission(void) void SP_info_player_intermission(edict_t *ent)
{ {
} }
@ -185,7 +185,7 @@ qboolean IsFemale (edict_t *ent)
struct monsterObit { struct monsterObit {
char *classname; char *classname;
char *message; char *message;
} obits[] = } obits[] =
{ {
{"monster_soldier", "%s was slaughtered by a Shotgun Guard.\n"}, {"monster_soldier", "%s was slaughtered by a Shotgun Guard.\n"},
{"monster_soldier_light", "%s was exterminated by a Light Guard.\n"}, {"monster_soldier_light", "%s was exterminated by a Light Guard.\n"},
@ -570,7 +570,7 @@ void player_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damag
{ {
stopCamera(self); stopCamera(self);
} }
VectorClear (self->avelocity); VectorClear (self->avelocity);
self->takedamage = DAMAGE_YES; self->takedamage = DAMAGE_YES;
@ -679,7 +679,7 @@ void InitClientPersistant (gclient_t *client)
item = FindItem("Push"); item = FindItem("Push");
client->pers.inventory[ITEM_INDEX(item)] = 1; client->pers.inventory[ITEM_INDEX(item)] = 1;
item = FindItem("Blaster"); item = FindItem("Blaster");
client->pers.selected_item = ITEM_INDEX(item); client->pers.selected_item = ITEM_INDEX(item);
client->pers.inventory[client->pers.selected_item] = 1; client->pers.inventory[client->pers.selected_item] = 1;
@ -693,7 +693,7 @@ void InitClientPersistant (gclient_t *client)
client->pers.inventory[ITEM_INDEX(item)] = 3; client->pers.inventory[ITEM_INDEX(item)] = 3;
} }
client->pers.health = 100; client->pers.health = 100;
client->pers.max_health = 100; client->pers.max_health = 100;
@ -730,7 +730,7 @@ void InitClientResp (gclient_t *client)
================== ==================
SaveClientData SaveClientData
Some information that should be persistant, like health, Some information that should be persistant, like health,
is still stored in the edict structure, so it needs to is still stored in the edict structure, so it needs to
be mirrored out to the client structure before all the be mirrored out to the client structure before all the
edicts are wiped. edicts are wiped.
@ -1249,7 +1249,7 @@ void PutClientInServer (edict_t *ent)
char userinfo[MAX_INFO_STRING]; char userinfo[MAX_INFO_STRING];
int health = client->pers.health; int health = client->pers.health;
memcpy (userinfo, client->pers.userinfo, sizeof(userinfo)); memcpy (userinfo, client->pers.userinfo, sizeof(userinfo));
InitClientPersistant(client); InitClientPersistant(client);
ClientUserinfoChanged (ent, userinfo); ClientUserinfoChanged (ent, userinfo);
@ -1344,7 +1344,7 @@ void PutClientInServer (edict_t *ent)
===================== =====================
ClientBeginDeathmatch ClientBeginDeathmatch
A client has just connected to the server in A client has just connected to the server in
deathmatch mode, so clear everything out before starting them. deathmatch mode, so clear everything out before starting them.
===================== =====================
*/ */
@ -1672,7 +1672,7 @@ void ClientThink (edict_t *ent, usercmd_t *ucmd)
{ {
client->ps.pmove.pm_type = PM_FREEZE; client->ps.pmove.pm_type = PM_FREEZE;
// can exit intermission after five seconds // can exit intermission after five seconds
if (level.time > level.intermissiontime + 5.0 if (level.time > level.intermissiontime + 5.0
&& (ucmd->buttons & BUTTON_ANY) ) && (ucmd->buttons & BUTTON_ANY) )
level.exitintermission = true; level.exitintermission = true;
return; return;
@ -1688,7 +1688,7 @@ void ClientThink (edict_t *ent, usercmd_t *ucmd)
// set up for pmove // set up for pmove
memset (&pm, 0, sizeof(pm)); memset (&pm, 0, sizeof(pm));
if (ent->movetype == MOVETYPE_NOCLIP) if (ent->movetype == MOVETYPE_NOCLIP)
client->ps.pmove.pm_type = PM_SPECTATOR; client->ps.pmove.pm_type = PM_SPECTATOR;
else if (ent->s.modelindex != 255) else if (ent->s.modelindex != 255)

View file

@ -164,7 +164,6 @@ void DeathmatchScoreboardMessage (edict_t *ent, edict_t *killer)
int sorted[MAX_CLIENTS]; int sorted[MAX_CLIENTS];
int sortedscores[MAX_CLIENTS]; int sortedscores[MAX_CLIENTS];
int score, total; int score, total;
int picnum;
int x, y; int x, y;
gclient_t *cl; gclient_t *cl;
edict_t *cl_ent; edict_t *cl_ent;
@ -212,7 +211,6 @@ void DeathmatchScoreboardMessage (edict_t *ent, edict_t *killer)
cl = &game.clients[sorted[i]]; cl = &game.clients[sorted[i]];
cl_ent = g_edicts + 1 + sorted[i]; cl_ent = g_edicts + 1 + sorted[i];
picnum = gi.imageindex ("i_fixme");
x = (i>=6) ? 160 : 0; x = (i>=6) ? 160 : 0;
y = 32 + 32 * (i%6); y = 32 + 32 * (i%6);
@ -335,12 +333,12 @@ void HelpComputer (edict_t *ent)
"xv 0 yv 54 cstring2 \"%s\" " // help 1 "xv 0 yv 54 cstring2 \"%s\" " // help 1
"xv 0 yv 110 cstring2 \"%s\" " // help 2 "xv 0 yv 110 cstring2 \"%s\" " // help 2
"xv 50 yv 164 string2 \" kills goals secrets\" " "xv 50 yv 164 string2 \" kills goals secrets\" "
"xv 50 yv 172 string2 \"%3i/%3i %i/%i %i/%i\" ", "xv 50 yv 172 string2 \"%3i/%3i %i/%i %i/%i\" ",
sk, sk,
level.level_name, level.level_name,
game.helpmessage1, game.helpmessage1,
game.helpmessage2, game.helpmessage2,
level.killed_monsters, level.total_monsters, level.killed_monsters, level.total_monsters,
level.found_goals, level.total_goals, level.found_goals, level.total_goals,
level.found_secrets, level.total_secrets); level.found_secrets, level.total_secrets);
@ -426,9 +424,9 @@ void G_SetStats (edict_t *ent)
ent->client->ps.stats[STAT_AMMO_ICON] = gi.imageindex (item->icon); ent->client->ps.stats[STAT_AMMO_ICON] = gi.imageindex (item->icon);
ent->client->ps.stats[STAT_AMMO] = ent->client->pers.inventory[ent->client->ammo_index]; ent->client->ps.stats[STAT_AMMO] = ent->client->pers.inventory[ent->client->ammo_index];
} }
cells = 0; cells = 0;
// //
// armor // armor
// //

View file

@ -404,7 +404,7 @@ extern void TossClientWeapon ( edict_t * self ) ;
extern void ClientObituary ( edict_t * self , edict_t * inflictor , edict_t * attacker ) ; extern void ClientObituary ( edict_t * self , edict_t * inflictor , edict_t * attacker ) ;
extern qboolean IsFemale ( edict_t * ent ) ; extern qboolean IsFemale ( edict_t * ent ) ;
extern void player_pain ( edict_t * self , edict_t * other , float kick , int damage ) ; extern void player_pain ( edict_t * self , edict_t * other , float kick , int damage ) ;
extern void SP_info_player_intermission ( void ) ; extern void SP_info_player_intermission ( edict_t *ent ) ;
extern void SP_info_player_coop ( edict_t * self ) ; extern void SP_info_player_coop ( edict_t * self ) ;
extern void SP_info_player_deathmatch ( edict_t * self ) ; extern void SP_info_player_deathmatch ( edict_t * self ) ;
extern void SP_info_player_start ( edict_t * self ) ; extern void SP_info_player_start ( edict_t * self ) ;