mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-11 18:50:46 +00:00
per-player max values for health, armor and ammo
git-svn-id: https://svn.eduke32.com/eduke32@566 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
75a496f970
commit
826f786dcc
12 changed files with 153 additions and 126 deletions
|
@ -100,8 +100,8 @@ void addammo(int weapon,player_struct *p,int amount)
|
||||||
{
|
{
|
||||||
p->ammo_amount[weapon] += amount;
|
p->ammo_amount[weapon] += amount;
|
||||||
|
|
||||||
if (p->ammo_amount[weapon] > max_ammo_amount[weapon])
|
if (p->ammo_amount[weapon] > p->max_ammo_amount[weapon])
|
||||||
p->ammo_amount[weapon] = max_ammo_amount[weapon];
|
p->ammo_amount[weapon] = p->max_ammo_amount[weapon];
|
||||||
}
|
}
|
||||||
|
|
||||||
void addweaponnoswitch(player_struct *p, int weapon)
|
void addweaponnoswitch(player_struct *p, int weapon)
|
||||||
|
@ -1067,7 +1067,7 @@ static void moveplayers(void) //Players
|
||||||
}
|
}
|
||||||
if (ud.god)
|
if (ud.god)
|
||||||
{
|
{
|
||||||
s->extra = max_player_health;
|
s->extra = p->max_player_health;
|
||||||
s->cstat = 257;
|
s->cstat = 257;
|
||||||
p->jetpack_amount = 1599;
|
p->jetpack_amount = 1599;
|
||||||
}
|
}
|
||||||
|
@ -4524,7 +4524,7 @@ DETONATEB:
|
||||||
}
|
}
|
||||||
else if (s->picnum == HEAVYHBOMB && x < 788 && t[0] > 7 && s->xvel == 0)
|
else if (s->picnum == HEAVYHBOMB && x < 788 && t[0] > 7 && s->xvel == 0)
|
||||||
if (cansee(s->x,s->y,s->z-(8<<8),s->sectnum,g_player[p].ps->posx,g_player[p].ps->posy,g_player[p].ps->posz,g_player[p].ps->cursectnum))
|
if (cansee(s->x,s->y,s->z-(8<<8),s->sectnum,g_player[p].ps->posx,g_player[p].ps->posy,g_player[p].ps->posz,g_player[p].ps->cursectnum))
|
||||||
if (g_player[p].ps->ammo_amount[HANDBOMB_WEAPON] < max_ammo_amount[HANDBOMB_WEAPON])
|
if (g_player[p].ps->ammo_amount[HANDBOMB_WEAPON] < g_player[p].ps->max_ammo_amount[HANDBOMB_WEAPON])
|
||||||
{
|
{
|
||||||
if ((gametype_flags[ud.coop] & GAMETYPE_FLAG_WEAPSTAY) && s->owner == i)
|
if ((gametype_flags[ud.coop] & GAMETYPE_FLAG_WEAPSTAY) && s->owner == i)
|
||||||
{
|
{
|
||||||
|
|
|
@ -66,7 +66,7 @@ extern int g_ScriptVersion, g_Shareware, g_GameType;
|
||||||
#define BYTEVERSION_13 27
|
#define BYTEVERSION_13 27
|
||||||
#define BYTEVERSION_14 116
|
#define BYTEVERSION_14 116
|
||||||
#define BYTEVERSION_15 117
|
#define BYTEVERSION_15 117
|
||||||
#define BYTEVERSION_JF 174 // increase by 3, because atomic GRP adds 1, and Shareware adds 2
|
#define BYTEVERSION_JF 177 // increase by 3, because atomic GRP adds 1, and Shareware adds 2
|
||||||
|
|
||||||
#define BYTEVERSION (BYTEVERSION_JF+(PLUTOPAK?1:(VOLUMEONE<<1))) // JBF 20040116: different data files give different versions
|
#define BYTEVERSION (BYTEVERSION_JF+(PLUTOPAK?1:(VOLUMEONE<<1))) // JBF 20040116: different data files give different versions
|
||||||
|
|
||||||
|
@ -496,14 +496,16 @@ typedef struct {
|
||||||
|
|
||||||
long max_secret_rooms,secret_rooms,max_actors_killed,actors_killed;
|
long max_secret_rooms,secret_rooms,max_actors_killed,actors_killed;
|
||||||
long runspeed, movement_lock, team;
|
long runspeed, movement_lock, team;
|
||||||
|
long max_player_health, max_shield_amount, max_ammo_amount[MAX_WEAPONS];
|
||||||
short sbs, sound_pitch;
|
short sbs, sound_pitch;
|
||||||
} player_struct;
|
} player_struct;
|
||||||
|
|
||||||
extern char tempbuf[2048], packbuf[576];
|
extern char tempbuf[2048], packbuf[576];
|
||||||
|
|
||||||
extern long gc,max_player_health,max_armour_amount,max_ammo_amount[MAX_WEAPONS];
|
extern long gc;
|
||||||
|
|
||||||
extern long impact_damage,respawnactortime,respawnitemtime;
|
extern long impact_damage,respawnactortime,respawnitemtime;
|
||||||
|
extern long start_armour_amount;
|
||||||
|
|
||||||
#define MOVFIFOSIZ 256
|
#define MOVFIFOSIZ 256
|
||||||
|
|
||||||
|
|
|
@ -1666,14 +1666,14 @@ static void weapon_amounts(player_struct *p,long x,long y,long u)
|
||||||
{
|
{
|
||||||
if (u != -1) patchstatusbar(88,178,88+37,178+6); //original code: (96,178,96+12,178+6);
|
if (u != -1) patchstatusbar(88,178,88+37,178+6); //original code: (96,178,96+12,178+6);
|
||||||
weaponnum999(PISTOL_WEAPON,x,y,
|
weaponnum999(PISTOL_WEAPON,x,y,
|
||||||
p->ammo_amount[PISTOL_WEAPON],max_ammo_amount[PISTOL_WEAPON],
|
p->ammo_amount[PISTOL_WEAPON],p->max_ammo_amount[PISTOL_WEAPON],
|
||||||
12-20*(cw == PISTOL_WEAPON));
|
12-20*(cw == PISTOL_WEAPON));
|
||||||
}
|
}
|
||||||
if (u&8)
|
if (u&8)
|
||||||
{
|
{
|
||||||
if (u != -1) patchstatusbar(88,184,88+37,184+6); //original code: (96,184,96+12,184+6);
|
if (u != -1) patchstatusbar(88,184,88+37,184+6); //original code: (96,184,96+12,184+6);
|
||||||
weaponnum999(SHOTGUN_WEAPON,x,y+6,
|
weaponnum999(SHOTGUN_WEAPON,x,y+6,
|
||||||
p->ammo_amount[SHOTGUN_WEAPON],max_ammo_amount[SHOTGUN_WEAPON],
|
p->ammo_amount[SHOTGUN_WEAPON],p->max_ammo_amount[SHOTGUN_WEAPON],
|
||||||
(!p->gotweapon[SHOTGUN_WEAPON]*9)+12-18*
|
(!p->gotweapon[SHOTGUN_WEAPON]*9)+12-18*
|
||||||
(cw == SHOTGUN_WEAPON));
|
(cw == SHOTGUN_WEAPON));
|
||||||
}
|
}
|
||||||
|
@ -1681,7 +1681,7 @@ static void weapon_amounts(player_struct *p,long x,long y,long u)
|
||||||
{
|
{
|
||||||
if (u != -1) patchstatusbar(88,190,88+37,190+6); //original code: (96,190,96+12,190+6);
|
if (u != -1) patchstatusbar(88,190,88+37,190+6); //original code: (96,190,96+12,190+6);
|
||||||
weaponnum999(CHAINGUN_WEAPON,x,y+12,
|
weaponnum999(CHAINGUN_WEAPON,x,y+12,
|
||||||
p->ammo_amount[CHAINGUN_WEAPON],max_ammo_amount[CHAINGUN_WEAPON],
|
p->ammo_amount[CHAINGUN_WEAPON],p->max_ammo_amount[CHAINGUN_WEAPON],
|
||||||
(!p->gotweapon[CHAINGUN_WEAPON]*9)+12-18*
|
(!p->gotweapon[CHAINGUN_WEAPON]*9)+12-18*
|
||||||
(cw == CHAINGUN_WEAPON));
|
(cw == CHAINGUN_WEAPON));
|
||||||
}
|
}
|
||||||
|
@ -1689,7 +1689,7 @@ static void weapon_amounts(player_struct *p,long x,long y,long u)
|
||||||
{
|
{
|
||||||
if (u != -1) patchstatusbar(127,178,127+29,178+6); //original code: (135,178,135+8,178+6);
|
if (u != -1) patchstatusbar(127,178,127+29,178+6); //original code: (135,178,135+8,178+6);
|
||||||
weaponnum(RPG_WEAPON,x+39,y,
|
weaponnum(RPG_WEAPON,x+39,y,
|
||||||
p->ammo_amount[RPG_WEAPON],max_ammo_amount[RPG_WEAPON],
|
p->ammo_amount[RPG_WEAPON],p->max_ammo_amount[RPG_WEAPON],
|
||||||
(!p->gotweapon[RPG_WEAPON]*9)+12-19*
|
(!p->gotweapon[RPG_WEAPON]*9)+12-19*
|
||||||
(cw == RPG_WEAPON));
|
(cw == RPG_WEAPON));
|
||||||
}
|
}
|
||||||
|
@ -1697,7 +1697,7 @@ static void weapon_amounts(player_struct *p,long x,long y,long u)
|
||||||
{
|
{
|
||||||
if (u != -1) patchstatusbar(127,184,127+29,184+6); //original code: (135,184,135+8,184+6);
|
if (u != -1) patchstatusbar(127,184,127+29,184+6); //original code: (135,184,135+8,184+6);
|
||||||
weaponnum(HANDBOMB_WEAPON,x+39,y+6,
|
weaponnum(HANDBOMB_WEAPON,x+39,y+6,
|
||||||
p->ammo_amount[HANDBOMB_WEAPON],max_ammo_amount[HANDBOMB_WEAPON],
|
p->ammo_amount[HANDBOMB_WEAPON],p->max_ammo_amount[HANDBOMB_WEAPON],
|
||||||
(((!p->ammo_amount[HANDBOMB_WEAPON])|(!p->gotweapon[HANDBOMB_WEAPON]))*9)+12-19*
|
(((!p->ammo_amount[HANDBOMB_WEAPON])|(!p->gotweapon[HANDBOMB_WEAPON]))*9)+12-19*
|
||||||
((cw == HANDBOMB_WEAPON) || (cw == HANDREMOTE_WEAPON)));
|
((cw == HANDBOMB_WEAPON) || (cw == HANDREMOTE_WEAPON)));
|
||||||
}
|
}
|
||||||
|
@ -1707,12 +1707,12 @@ static void weapon_amounts(player_struct *p,long x,long y,long u)
|
||||||
|
|
||||||
if (p->subweapon&(1<<GROW_WEAPON))
|
if (p->subweapon&(1<<GROW_WEAPON))
|
||||||
weaponnum(SHRINKER_WEAPON,x+39,y+12,
|
weaponnum(SHRINKER_WEAPON,x+39,y+12,
|
||||||
p->ammo_amount[GROW_WEAPON],max_ammo_amount[GROW_WEAPON],
|
p->ammo_amount[GROW_WEAPON],p->max_ammo_amount[GROW_WEAPON],
|
||||||
(!p->gotweapon[GROW_WEAPON]*9)+12-18*
|
(!p->gotweapon[GROW_WEAPON]*9)+12-18*
|
||||||
(cw == GROW_WEAPON));
|
(cw == GROW_WEAPON));
|
||||||
else
|
else
|
||||||
weaponnum(SHRINKER_WEAPON,x+39,y+12,
|
weaponnum(SHRINKER_WEAPON,x+39,y+12,
|
||||||
p->ammo_amount[SHRINKER_WEAPON],max_ammo_amount[SHRINKER_WEAPON],
|
p->ammo_amount[SHRINKER_WEAPON],p->max_ammo_amount[SHRINKER_WEAPON],
|
||||||
(!p->gotweapon[SHRINKER_WEAPON]*9)+12-18*
|
(!p->gotweapon[SHRINKER_WEAPON]*9)+12-18*
|
||||||
(cw == SHRINKER_WEAPON));
|
(cw == SHRINKER_WEAPON));
|
||||||
}
|
}
|
||||||
|
@ -1721,7 +1721,7 @@ static void weapon_amounts(player_struct *p,long x,long y,long u)
|
||||||
if (u != -1) patchstatusbar(158,178,162+29,178+6); //original code: (166,178,166+8,178+6);
|
if (u != -1) patchstatusbar(158,178,162+29,178+6); //original code: (166,178,166+8,178+6);
|
||||||
|
|
||||||
weaponnum(DEVISTATOR_WEAPON,x+70,y,
|
weaponnum(DEVISTATOR_WEAPON,x+70,y,
|
||||||
p->ammo_amount[DEVISTATOR_WEAPON],max_ammo_amount[DEVISTATOR_WEAPON],
|
p->ammo_amount[DEVISTATOR_WEAPON],p->max_ammo_amount[DEVISTATOR_WEAPON],
|
||||||
(!p->gotweapon[DEVISTATOR_WEAPON]*9)+12-18*
|
(!p->gotweapon[DEVISTATOR_WEAPON]*9)+12-18*
|
||||||
(cw == DEVISTATOR_WEAPON));
|
(cw == DEVISTATOR_WEAPON));
|
||||||
}
|
}
|
||||||
|
@ -1730,7 +1730,7 @@ static void weapon_amounts(player_struct *p,long x,long y,long u)
|
||||||
if (u != -1) patchstatusbar(158,184,162+29,184+6); //original code: (166,184,166+8,184+6);
|
if (u != -1) patchstatusbar(158,184,162+29,184+6); //original code: (166,184,166+8,184+6);
|
||||||
|
|
||||||
weaponnum(TRIPBOMB_WEAPON,x+70,y+6,
|
weaponnum(TRIPBOMB_WEAPON,x+70,y+6,
|
||||||
p->ammo_amount[TRIPBOMB_WEAPON],max_ammo_amount[TRIPBOMB_WEAPON],
|
p->ammo_amount[TRIPBOMB_WEAPON],p->max_ammo_amount[TRIPBOMB_WEAPON],
|
||||||
(!p->gotweapon[TRIPBOMB_WEAPON]*9)+12-18*
|
(!p->gotweapon[TRIPBOMB_WEAPON]*9)+12-18*
|
||||||
(cw == TRIPBOMB_WEAPON));
|
(cw == TRIPBOMB_WEAPON));
|
||||||
}
|
}
|
||||||
|
@ -1740,7 +1740,7 @@ static void weapon_amounts(player_struct *p,long x,long y,long u)
|
||||||
if (u != -1) patchstatusbar(158,190,162+29,190+6); //original code: (166,190,166+8,190+6);
|
if (u != -1) patchstatusbar(158,190,162+29,190+6); //original code: (166,190,166+8,190+6);
|
||||||
|
|
||||||
weaponnum(-1,x+70,y+12,
|
weaponnum(-1,x+70,y+12,
|
||||||
p->ammo_amount[FREEZE_WEAPON],max_ammo_amount[FREEZE_WEAPON],
|
p->ammo_amount[FREEZE_WEAPON],p->max_ammo_amount[FREEZE_WEAPON],
|
||||||
(!p->gotweapon[FREEZE_WEAPON]*9)+12-18*
|
(!p->gotweapon[FREEZE_WEAPON]*9)+12-18*
|
||||||
(cw == FREEZE_WEAPON));
|
(cw == FREEZE_WEAPON));
|
||||||
}
|
}
|
||||||
|
@ -7190,7 +7190,7 @@ void CheatGetInventory(void)
|
||||||
GetGameVarID(g_iReturnVarID, g_player[myconnectindex].ps->i, myconnectindex);
|
GetGameVarID(g_iReturnVarID, g_player[myconnectindex].ps->i, myconnectindex);
|
||||||
}
|
}
|
||||||
|
|
||||||
SetGameVarID(g_iReturnVarID, max_player_health, g_player[myconnectindex].ps->i, myconnectindex);
|
SetGameVarID(g_iReturnVarID, g_player[myconnectindex].ps->max_player_health, g_player[myconnectindex].ps->i, myconnectindex);
|
||||||
OnEvent(EVENT_CHEATGETFIRSTAID, g_player[myconnectindex].ps->i, myconnectindex, -1);
|
OnEvent(EVENT_CHEATGETFIRSTAID, g_player[myconnectindex].ps->i, myconnectindex, -1);
|
||||||
if (GetGameVarID(g_iReturnVarID, g_player[myconnectindex].ps->i, myconnectindex) >=0)
|
if (GetGameVarID(g_iReturnVarID, g_player[myconnectindex].ps->i, myconnectindex) >=0)
|
||||||
{
|
{
|
||||||
|
@ -7280,7 +7280,7 @@ FOUNDCHEAT:
|
||||||
|
|
||||||
for (weapon = PISTOL_WEAPON;weapon < MAX_WEAPONS-j;weapon++)
|
for (weapon = PISTOL_WEAPON;weapon < MAX_WEAPONS-j;weapon++)
|
||||||
{
|
{
|
||||||
addammo(weapon, g_player[myconnectindex].ps, max_ammo_amount[weapon]);
|
addammo(weapon, g_player[myconnectindex].ps, g_player[myconnectindex].ps->max_ammo_amount[weapon]);
|
||||||
g_player[myconnectindex].ps->gotweapon[weapon] = 1;
|
g_player[myconnectindex].ps->gotweapon[weapon] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7361,13 +7361,13 @@ FOUNDCHEAT:
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ud.god = 0;
|
ud.god = 0;
|
||||||
sprite[g_player[myconnectindex].ps->i].extra = max_player_health;
|
sprite[g_player[myconnectindex].ps->i].extra = g_player[myconnectindex].ps->max_player_health;
|
||||||
hittype[g_player[myconnectindex].ps->i].extra = -1;
|
hittype[g_player[myconnectindex].ps->i].extra = -1;
|
||||||
g_player[myconnectindex].ps->last_extra = max_player_health;
|
g_player[myconnectindex].ps->last_extra = g_player[myconnectindex].ps->max_player_health;
|
||||||
FTA(18,g_player[myconnectindex].ps);
|
FTA(18,g_player[myconnectindex].ps);
|
||||||
}
|
}
|
||||||
|
|
||||||
sprite[g_player[myconnectindex].ps->i].extra = max_player_health;
|
sprite[g_player[myconnectindex].ps->i].extra = g_player[myconnectindex].ps->max_player_health;
|
||||||
hittype[g_player[myconnectindex].ps->i].extra = 0;
|
hittype[g_player[myconnectindex].ps->i].extra = 0;
|
||||||
g_player[myconnectindex].ps->cheat_phase = 0;
|
g_player[myconnectindex].ps->cheat_phase = 0;
|
||||||
KB_FlushKeyBoardQueue();
|
KB_FlushKeyBoardQueue();
|
||||||
|
@ -7401,18 +7401,18 @@ FOUNDCHEAT:
|
||||||
for (weapon = PISTOL_WEAPON;
|
for (weapon = PISTOL_WEAPON;
|
||||||
weapon < (MAX_WEAPONS);
|
weapon < (MAX_WEAPONS);
|
||||||
weapon++)
|
weapon++)
|
||||||
addammo(weapon, g_player[myconnectindex].ps, max_ammo_amount[weapon]);
|
addammo(weapon, g_player[myconnectindex].ps, g_player[myconnectindex].ps->max_ammo_amount[weapon]);
|
||||||
g_player[myconnectindex].ps->got_access = 7;
|
g_player[myconnectindex].ps->got_access = 7;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sprite[g_player[myconnectindex].ps->i].extra = max_player_health;
|
sprite[g_player[myconnectindex].ps->i].extra = g_player[myconnectindex].ps->max_player_health;
|
||||||
hittype[g_player[myconnectindex].ps->i].extra = -1;
|
hittype[g_player[myconnectindex].ps->i].extra = -1;
|
||||||
g_player[myconnectindex].ps->last_extra = max_player_health;
|
g_player[myconnectindex].ps->last_extra = g_player[myconnectindex].ps->max_player_health;
|
||||||
FTA(18,g_player[myconnectindex].ps);
|
FTA(18,g_player[myconnectindex].ps);
|
||||||
}
|
}
|
||||||
|
|
||||||
sprite[g_player[myconnectindex].ps->i].extra = max_player_health;
|
sprite[g_player[myconnectindex].ps->i].extra = g_player[myconnectindex].ps->max_player_health;
|
||||||
hittype[g_player[myconnectindex].ps->i].extra = 0;
|
hittype[g_player[myconnectindex].ps->i].extra = 0;
|
||||||
g_player[myconnectindex].ps->cheat_phase = 0;
|
g_player[myconnectindex].ps->cheat_phase = 0;
|
||||||
KB_FlushKeyBoardQueue();
|
KB_FlushKeyBoardQueue();
|
||||||
|
@ -7432,7 +7432,7 @@ FOUNDCHEAT:
|
||||||
for (weapon = PISTOL_WEAPON;
|
for (weapon = PISTOL_WEAPON;
|
||||||
weapon < (MAX_WEAPONS-j);
|
weapon < (MAX_WEAPONS-j);
|
||||||
weapon++)
|
weapon++)
|
||||||
addammo(weapon, g_player[myconnectindex].ps, max_ammo_amount[weapon]);
|
addammo(weapon, g_player[myconnectindex].ps, g_player[myconnectindex].ps->max_ammo_amount[weapon]);
|
||||||
CheatGetInventory();
|
CheatGetInventory();
|
||||||
g_player[myconnectindex].ps->got_access = 7;
|
g_player[myconnectindex].ps->got_access = 7;
|
||||||
FTA(5,g_player[myconnectindex].ps);
|
FTA(5,g_player[myconnectindex].ps);
|
||||||
|
@ -10147,10 +10147,10 @@ void app_main(int argc,const char **argv)
|
||||||
if (numplayers > 1)
|
if (numplayers > 1)
|
||||||
ud.multimode = numplayers;
|
ud.multimode = numplayers;
|
||||||
|
|
||||||
for (i=1;i<MAXPLAYERS;i++)
|
for (i=1;i<ud.multimode;i++)
|
||||||
{
|
{
|
||||||
g_player[i].ps = Bcalloc(1,sizeof(player_struct));
|
g_player[i].ps = (player_struct *) Bcalloc(1,sizeof(player_struct));
|
||||||
g_player[i].sync = Bcalloc(1,sizeof(input));
|
g_player[i].sync = (input *) Bcalloc(1,sizeof(input));
|
||||||
}
|
}
|
||||||
|
|
||||||
g_player[myconnectindex].ps->palette = (char *) &palette[0];
|
g_player[myconnectindex].ps->palette = (char *) &palette[0];
|
||||||
|
|
|
@ -693,6 +693,9 @@ LABELS playerlabels[]=
|
||||||
{ "sound_pitch", PLAYER_SOUND_PITCH, 0, 0 },
|
{ "sound_pitch", PLAYER_SOUND_PITCH, 0, 0 },
|
||||||
{ "weaponswitch", PLAYER_WEAPONSWITCH, 0, 0 },
|
{ "weaponswitch", PLAYER_WEAPONSWITCH, 0, 0 },
|
||||||
{ "team", PLAYER_TEAM, 0, 0 },
|
{ "team", PLAYER_TEAM, 0, 0 },
|
||||||
|
{ "max_player_health", PLAYER_MAX_PLAYER_HEALTH, 0, 0 },
|
||||||
|
{ "max_shield_amount", PLAYER_MAX_SHIELD_AMOUNT, 0, 0 },
|
||||||
|
{ "max_ammo_amount", PLAYER_MAX_AMMO_AMOUNT, LABEL_HASPARM2, MAX_WEAPONS },
|
||||||
{ "", -1, 0, 0 } // END OF LIST
|
{ "", -1, 0, 0 } // END OF LIST
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4414,8 +4417,8 @@ repeatcase:
|
||||||
j = 0;
|
j = 0;
|
||||||
ud.const_visibility = params[j++];
|
ud.const_visibility = params[j++];
|
||||||
impact_damage = params[j++];
|
impact_damage = params[j++];
|
||||||
max_player_health = params[j++];
|
g_player[0].ps->max_player_health = g_player[0].ps->max_shield_amount = params[j++];
|
||||||
max_armour_amount = params[j++];
|
start_armour_amount = params[j++];
|
||||||
respawnactortime = params[j++];
|
respawnactortime = params[j++];
|
||||||
respawnitemtime = params[j++];
|
respawnitemtime = params[j++];
|
||||||
dukefriction = params[j++];
|
dukefriction = params[j++];
|
||||||
|
@ -4427,16 +4430,16 @@ repeatcase:
|
||||||
morterblastradius = params[j++];
|
morterblastradius = params[j++];
|
||||||
bouncemineblastradius = params[j++];
|
bouncemineblastradius = params[j++];
|
||||||
seenineblastradius = params[j++];
|
seenineblastradius = params[j++];
|
||||||
max_ammo_amount[PISTOL_WEAPON] = params[j++];
|
g_player[0].ps->max_ammo_amount[PISTOL_WEAPON] = params[j++];
|
||||||
max_ammo_amount[SHOTGUN_WEAPON] = params[j++];
|
g_player[0].ps->max_ammo_amount[SHOTGUN_WEAPON] = params[j++];
|
||||||
max_ammo_amount[CHAINGUN_WEAPON] = params[j++];
|
g_player[0].ps->max_ammo_amount[CHAINGUN_WEAPON] = params[j++];
|
||||||
max_ammo_amount[RPG_WEAPON] = params[j++];
|
g_player[0].ps->max_ammo_amount[RPG_WEAPON] = params[j++];
|
||||||
max_ammo_amount[HANDBOMB_WEAPON] = params[j++];
|
g_player[0].ps->max_ammo_amount[HANDBOMB_WEAPON] = params[j++];
|
||||||
max_ammo_amount[SHRINKER_WEAPON] = params[j++];
|
g_player[0].ps->max_ammo_amount[SHRINKER_WEAPON] = params[j++];
|
||||||
max_ammo_amount[DEVISTATOR_WEAPON] = params[j++];
|
g_player[0].ps->max_ammo_amount[DEVISTATOR_WEAPON] = params[j++];
|
||||||
max_ammo_amount[TRIPBOMB_WEAPON] = params[j++];
|
g_player[0].ps->max_ammo_amount[TRIPBOMB_WEAPON] = params[j++];
|
||||||
max_ammo_amount[FREEZE_WEAPON] = params[j++];
|
g_player[0].ps->max_ammo_amount[FREEZE_WEAPON] = params[j++];
|
||||||
if (g_ScriptVersion == 14) max_ammo_amount[GROW_WEAPON] = params[j++];
|
if (g_ScriptVersion == 14) g_player[0].ps->max_ammo_amount[GROW_WEAPON] = params[j++];
|
||||||
camerashitable = params[j++];
|
camerashitable = params[j++];
|
||||||
numfreezebounces = params[j++];
|
numfreezebounces = params[j++];
|
||||||
freezerhurtowner = params[j++];
|
freezerhurtowner = params[j++];
|
||||||
|
|
|
@ -56,13 +56,22 @@ extern char cheatquotes[][MAXCHEATLEN];
|
||||||
extern char compilefile[BMAX_PATH];
|
extern char compilefile[BMAX_PATH];
|
||||||
extern int total_lines,line_number;
|
extern int total_lines,line_number;
|
||||||
extern int error,warning;
|
extern int error,warning;
|
||||||
typedef struct _labels {
|
typedef struct _labels
|
||||||
|
{
|
||||||
char *name;
|
char *name;
|
||||||
long lId;
|
long lId;
|
||||||
int flags;
|
int flags;
|
||||||
int maxParm2;
|
int maxParm2;
|
||||||
} LABELS;
|
} LABELS;
|
||||||
|
|
||||||
|
extern LABELS sectorlabels[];
|
||||||
|
extern LABELS walllabels[];
|
||||||
|
extern LABELS actorlabels[];
|
||||||
|
extern LABELS playerlabels[];
|
||||||
|
extern LABELS projectilelabels[];
|
||||||
|
extern LABELS userdeflabels[];
|
||||||
|
extern LABELS inputlabels[];
|
||||||
|
|
||||||
enum errors
|
enum errors
|
||||||
{
|
{
|
||||||
ERROR_CLOSEBRACKET,
|
ERROR_CLOSEBRACKET,
|
||||||
|
@ -85,7 +94,8 @@ enum errors
|
||||||
WARNING_LABELSONLY,
|
WARNING_LABELSONLY,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum playerlabels {
|
enum playerlabels
|
||||||
|
{
|
||||||
PLAYER_ZOOM,
|
PLAYER_ZOOM,
|
||||||
PLAYER_EXITX,
|
PLAYER_EXITX,
|
||||||
PLAYER_EXITY,
|
PLAYER_EXITY,
|
||||||
|
@ -227,10 +237,14 @@ enum playerlabels {
|
||||||
PLAYER_MOVEMENT_LOCK,
|
PLAYER_MOVEMENT_LOCK,
|
||||||
PLAYER_SOUND_PITCH,
|
PLAYER_SOUND_PITCH,
|
||||||
PLAYER_WEAPONSWITCH,
|
PLAYER_WEAPONSWITCH,
|
||||||
PLAYER_TEAM
|
PLAYER_TEAM,
|
||||||
|
PLAYER_MAX_PLAYER_HEALTH,
|
||||||
|
PLAYER_MAX_SHIELD_AMOUNT,
|
||||||
|
PLAYER_MAX_AMMO_AMOUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
enum userdefslabels {
|
enum userdefslabels
|
||||||
|
{
|
||||||
USERDEFS_GOD,
|
USERDEFS_GOD,
|
||||||
USERDEFS_WARP_ON,
|
USERDEFS_WARP_ON,
|
||||||
USERDEFS_CASHMAN,
|
USERDEFS_CASHMAN,
|
||||||
|
@ -321,7 +335,8 @@ enum userdefslabels {
|
||||||
USERDEFS_DEATHMSGS
|
USERDEFS_DEATHMSGS
|
||||||
};
|
};
|
||||||
|
|
||||||
enum sectorlabels {
|
enum sectorlabels
|
||||||
|
{
|
||||||
SECTOR_WALLPTR,
|
SECTOR_WALLPTR,
|
||||||
SECTOR_WALLNUM,
|
SECTOR_WALLNUM,
|
||||||
SECTOR_CEILINGZ,
|
SECTOR_CEILINGZ,
|
||||||
|
@ -347,7 +362,8 @@ enum sectorlabels {
|
||||||
SECTOR_EXTRA
|
SECTOR_EXTRA
|
||||||
};
|
};
|
||||||
|
|
||||||
enum walllabels {
|
enum walllabels
|
||||||
|
{
|
||||||
WALL_X,
|
WALL_X,
|
||||||
WALL_Y,
|
WALL_Y,
|
||||||
WALL_POINT2,
|
WALL_POINT2,
|
||||||
|
@ -367,7 +383,8 @@ enum walllabels {
|
||||||
WALL_EXTRA
|
WALL_EXTRA
|
||||||
};
|
};
|
||||||
|
|
||||||
enum actorlabels {
|
enum actorlabels
|
||||||
|
{
|
||||||
ACTOR_X,
|
ACTOR_X,
|
||||||
ACTOR_Y,
|
ACTOR_Y,
|
||||||
ACTOR_Z,
|
ACTOR_Z,
|
||||||
|
@ -418,7 +435,8 @@ enum actorlabels {
|
||||||
ACTOR_MDFLAGS
|
ACTOR_MDFLAGS
|
||||||
};
|
};
|
||||||
|
|
||||||
enum inputlabels {
|
enum inputlabels
|
||||||
|
{
|
||||||
INPUT_AVEL,
|
INPUT_AVEL,
|
||||||
INPUT_HORZ,
|
INPUT_HORZ,
|
||||||
INPUT_FVEL,
|
INPUT_FVEL,
|
||||||
|
@ -427,7 +445,8 @@ enum inputlabels {
|
||||||
INPUT_EXTBITS
|
INPUT_EXTBITS
|
||||||
};
|
};
|
||||||
|
|
||||||
enum projectilelabels {
|
enum projectilelabels
|
||||||
|
{
|
||||||
PROJ_WORKSLIKE,
|
PROJ_WORKSLIKE,
|
||||||
PROJ_SPAWNS,
|
PROJ_SPAWNS,
|
||||||
PROJ_SXREPEAT,
|
PROJ_SXREPEAT,
|
||||||
|
@ -458,7 +477,8 @@ enum projectilelabels {
|
||||||
PROJ_RANGE // 28
|
PROJ_RANGE // 28
|
||||||
};
|
};
|
||||||
|
|
||||||
enum keywords {
|
enum keywords
|
||||||
|
{
|
||||||
CON_DEFINELEVELNAME, // 0
|
CON_DEFINELEVELNAME, // 0
|
||||||
CON_ACTOR, // 1
|
CON_ACTOR, // 1
|
||||||
CON_ADDAMMO, // 2
|
CON_ADDAMMO, // 2
|
||||||
|
|
|
@ -1953,6 +1953,28 @@ static void DoPlayer(int iSet, int lVar1, int lLabelID, int lVar2, int lParm2)
|
||||||
SetGameVarID(lVar2, g_player[iPlayer].ps->team, g_i, g_p);
|
SetGameVarID(lVar2, g_player[iPlayer].ps->team, g_i, g_p);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PLAYER_MAX_PLAYER_HEALTH:
|
||||||
|
if (iSet)
|
||||||
|
g_player[iPlayer].ps->max_player_health = lValue;
|
||||||
|
else
|
||||||
|
SetGameVarID(lVar2, g_player[iPlayer].ps->max_player_health, g_i, g_p);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PLAYER_MAX_SHIELD_AMOUNT:
|
||||||
|
if (iSet)
|
||||||
|
g_player[iPlayer].ps->max_shield_amount = lValue;
|
||||||
|
else
|
||||||
|
SetGameVarID(lVar2, g_player[iPlayer].ps->max_shield_amount, g_i, g_p);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PLAYER_MAX_AMMO_AMOUNT:
|
||||||
|
lTemp=lParm2;
|
||||||
|
if (iSet)
|
||||||
|
g_player[iPlayer].ps->max_ammo_amount[lTemp]=lValue;
|
||||||
|
else
|
||||||
|
SetGameVarID(lVar2, g_player[iPlayer].ps->max_ammo_amount[lTemp], g_i, g_p);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -3962,7 +3984,7 @@ static int parse(void)
|
||||||
return 1;
|
return 1;
|
||||||
case CON_ADDAMMO:
|
case CON_ADDAMMO:
|
||||||
insptr++;
|
insptr++;
|
||||||
if (g_player[g_p].ps->ammo_amount[*insptr] >= max_ammo_amount[*insptr])
|
if (g_player[g_p].ps->ammo_amount[*insptr] >= g_player[g_p].ps->max_ammo_amount[*insptr])
|
||||||
{
|
{
|
||||||
killit_flag = 2;
|
killit_flag = 2;
|
||||||
break;
|
break;
|
||||||
|
@ -4020,7 +4042,7 @@ static int parse(void)
|
||||||
if (!(g_player[g_p].ps->weaponswitch & 1)) addweaponnoswitch(g_player[g_p].ps, *insptr);
|
if (!(g_player[g_p].ps->weaponswitch & 1)) addweaponnoswitch(g_player[g_p].ps, *insptr);
|
||||||
else addweapon(g_player[g_p].ps, *insptr);
|
else addweapon(g_player[g_p].ps, *insptr);
|
||||||
}
|
}
|
||||||
else if (g_player[g_p].ps->ammo_amount[*insptr] >= max_ammo_amount[*insptr])
|
else if (g_player[g_p].ps->ammo_amount[*insptr] >= g_player[g_p].ps->max_ammo_amount[*insptr])
|
||||||
{
|
{
|
||||||
killit_flag = 2;
|
killit_flag = 2;
|
||||||
break;
|
break;
|
||||||
|
@ -4073,7 +4095,7 @@ static int parse(void)
|
||||||
|
|
||||||
if (g_sp->picnum != ATOMICHEALTH)
|
if (g_sp->picnum != ATOMICHEALTH)
|
||||||
{
|
{
|
||||||
if (j > max_player_health && *insptr > 0)
|
if (j > g_player[g_p].ps->max_player_health && *insptr > 0)
|
||||||
{
|
{
|
||||||
insptr++;
|
insptr++;
|
||||||
break;
|
break;
|
||||||
|
@ -4082,16 +4104,16 @@ static int parse(void)
|
||||||
{
|
{
|
||||||
if (j > 0)
|
if (j > 0)
|
||||||
j += *insptr;
|
j += *insptr;
|
||||||
if (j > max_player_health && *insptr > 0)
|
if (j > g_player[g_p].ps->max_player_health && *insptr > 0)
|
||||||
j = max_player_health;
|
j = g_player[g_p].ps->max_player_health;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (j > 0)
|
if (j > 0)
|
||||||
j += *insptr;
|
j += *insptr;
|
||||||
if (j > (max_player_health<<1))
|
if (j > (g_player[g_p].ps->max_player_health<<1))
|
||||||
j = (max_player_health<<1);
|
j = (g_player[g_p].ps->max_player_health<<1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (j < 0) j = 0;
|
if (j < 0) j = 0;
|
||||||
|
@ -4100,8 +4122,8 @@ static int parse(void)
|
||||||
{
|
{
|
||||||
if (*insptr > 0)
|
if (*insptr > 0)
|
||||||
{
|
{
|
||||||
if ((j - *insptr) < (max_player_health>>2) &&
|
if ((j - *insptr) < (g_player[g_p].ps->max_player_health>>2) &&
|
||||||
j >= (max_player_health>>2))
|
j >= (g_player[g_p].ps->max_player_health>>2))
|
||||||
spritesound(DUKE_GOTHEALTHATLOW,g_player[g_p].ps->i);
|
spritesound(DUKE_GOTHEALTHATLOW,g_player[g_p].ps->i);
|
||||||
|
|
||||||
g_player[g_p].ps->last_extra = j;
|
g_player[g_p].ps->last_extra = j;
|
||||||
|
@ -4144,7 +4166,7 @@ static int parse(void)
|
||||||
if (!(g_player[g_p].ps->weaponswitch & 1)) addweaponnoswitch(g_player[g_p].ps, GetGameVarID(*(insptr),g_i,g_p));
|
if (!(g_player[g_p].ps->weaponswitch & 1)) addweaponnoswitch(g_player[g_p].ps, GetGameVarID(*(insptr),g_i,g_p));
|
||||||
else addweapon(g_player[g_p].ps, GetGameVarID(*(insptr),g_i,g_p));
|
else addweapon(g_player[g_p].ps, GetGameVarID(*(insptr),g_i,g_p));
|
||||||
}
|
}
|
||||||
else if (g_player[g_p].ps->ammo_amount[GetGameVarID(*(insptr),g_i,g_p)] >= max_ammo_amount[GetGameVarID(*(insptr),g_i,g_p)])
|
else if (g_player[g_p].ps->ammo_amount[GetGameVarID(*(insptr),g_i,g_p)] >= g_player[g_p].ps->max_ammo_amount[GetGameVarID(*(insptr),g_i,g_p)])
|
||||||
{
|
{
|
||||||
killit_flag = 2;
|
killit_flag = 2;
|
||||||
break;
|
break;
|
||||||
|
@ -5131,7 +5153,7 @@ static int parse(void)
|
||||||
g_sp->xoffset = 0;
|
g_sp->xoffset = 0;
|
||||||
g_sp->pal = g_player[g_p].ps->palookup;
|
g_sp->pal = g_player[g_p].ps->palookup;
|
||||||
|
|
||||||
g_player[g_p].ps->last_extra = g_sp->extra = max_player_health;
|
g_player[g_p].ps->last_extra = g_sp->extra = g_player[g_p].ps->max_player_health;
|
||||||
g_player[g_p].ps->wantweaponfire = -1;
|
g_player[g_p].ps->wantweaponfire = -1;
|
||||||
g_player[g_p].ps->horiz = 100;
|
g_player[g_p].ps->horiz = 100;
|
||||||
g_player[g_p].ps->on_crane = -1;
|
g_player[g_p].ps->on_crane = -1;
|
||||||
|
@ -5139,7 +5161,7 @@ static int parse(void)
|
||||||
g_player[g_p].ps->horizoff = 0;
|
g_player[g_p].ps->horizoff = 0;
|
||||||
g_player[g_p].ps->opyoff = 0;
|
g_player[g_p].ps->opyoff = 0;
|
||||||
g_player[g_p].ps->wackedbyactor = -1;
|
g_player[g_p].ps->wackedbyactor = -1;
|
||||||
g_player[g_p].ps->shield_amount = max_armour_amount;
|
g_player[g_p].ps->shield_amount = start_armour_amount;
|
||||||
g_player[g_p].ps->dead_flag = 0;
|
g_player[g_p].ps->dead_flag = 0;
|
||||||
g_player[g_p].ps->pals_time = 0;
|
g_player[g_p].ps->pals_time = 0;
|
||||||
g_player[g_p].ps->footprintcount = 0;
|
g_player[g_p].ps->footprintcount = 0;
|
||||||
|
@ -5211,8 +5233,8 @@ static int parse(void)
|
||||||
|
|
||||||
case GET_SHIELD:
|
case GET_SHIELD:
|
||||||
g_player[g_p].ps->shield_amount += *insptr;// 100;
|
g_player[g_p].ps->shield_amount += *insptr;// 100;
|
||||||
if (g_player[g_p].ps->shield_amount > max_player_health)
|
if (g_player[g_p].ps->shield_amount > g_player[g_p].ps->max_shield_amount)
|
||||||
g_player[g_p].ps->shield_amount = max_player_health;
|
g_player[g_p].ps->shield_amount = g_player[g_p].ps->max_shield_amount;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GET_SCUBA:
|
case GET_SCUBA:
|
||||||
|
@ -5732,22 +5754,11 @@ static int parse(void)
|
||||||
{
|
{
|
||||||
// syntax [gs]etplayer[<var>].x <VAR>
|
// syntax [gs]etplayer[<var>].x <VAR>
|
||||||
// <varid> <xxxid> <varid>
|
// <varid> <xxxid> <varid>
|
||||||
int lVar1=*insptr++, lLabelID=*insptr++, lParm2, lVar2;
|
int lVar1=*insptr++, lLabelID=*insptr++, lParm2 = 0, lVar2;
|
||||||
// HACK: need to have access to labels structure at run-time...
|
// HACK: need to have access to labels structure at run-time...
|
||||||
|
|
||||||
switch (lLabelID)
|
if (playerlabels[lLabelID].flags & LABEL_HASPARM2)
|
||||||
{
|
|
||||||
case PLAYER_AMMO_AMOUNT:
|
|
||||||
case PLAYER_GOTWEAPON:
|
|
||||||
case PLAYER_PALS:
|
|
||||||
case PLAYER_LOOGIEX:
|
|
||||||
case PLAYER_LOOGIEY:
|
|
||||||
lParm2=GetGameVarID(*insptr++, g_i, g_p);
|
lParm2=GetGameVarID(*insptr++, g_i, g_p);
|
||||||
break;
|
|
||||||
default:
|
|
||||||
lParm2=0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
lVar2=*insptr++;
|
lVar2=*insptr++;
|
||||||
|
|
||||||
DoPlayer(tw==CON_SETPLAYER, lVar1, lLabelID, lVar2, lParm2);
|
DoPlayer(tw==CON_SETPLAYER, lVar1, lLabelID, lVar2, lParm2);
|
||||||
|
@ -5851,17 +5862,10 @@ static int parse(void)
|
||||||
// syntax [gs]etactor[<var>].x <VAR>
|
// syntax [gs]etactor[<var>].x <VAR>
|
||||||
// <varid> <xxxid> <varid>
|
// <varid> <xxxid> <varid>
|
||||||
|
|
||||||
int lVar1=*insptr++, lLabelID=*insptr++, lParm2, lVar2;
|
int lVar1=*insptr++, lLabelID=*insptr++, lParm2 = 0, lVar2;
|
||||||
|
|
||||||
switch (lLabelID)
|
if (actorlabels[lLabelID].flags & LABEL_HASPARM2)
|
||||||
{
|
|
||||||
case ACTOR_HTG_T:
|
|
||||||
lParm2=GetGameVarID(*insptr++, g_i, g_p);
|
lParm2=GetGameVarID(*insptr++, g_i, g_p);
|
||||||
break;
|
|
||||||
default:
|
|
||||||
lParm2=0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
lVar2=*insptr++;
|
lVar2=*insptr++;
|
||||||
|
|
||||||
DoActor(tw==CON_SETACTOR, lVar1, lLabelID, lVar2, lParm2);
|
DoActor(tw==CON_SETACTOR, lVar1, lLabelID, lVar2, lParm2);
|
||||||
|
@ -6003,13 +6007,13 @@ static int parse(void)
|
||||||
case CON_GMAXAMMO:
|
case CON_GMAXAMMO:
|
||||||
insptr++;
|
insptr++;
|
||||||
j=GetGameVarID(*insptr++, g_i, g_p);
|
j=GetGameVarID(*insptr++, g_i, g_p);
|
||||||
SetGameVarID(*insptr++, max_ammo_amount[j], g_i, g_p);
|
SetGameVarID(*insptr++, g_player[g_p].ps->max_ammo_amount[j], g_i, g_p);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CON_SMAXAMMO:
|
case CON_SMAXAMMO:
|
||||||
insptr++;
|
insptr++;
|
||||||
j=GetGameVarID(*insptr++, g_i, g_p);
|
j=GetGameVarID(*insptr++, g_i, g_p);
|
||||||
max_ammo_amount[j]=GetGameVarID(*insptr++, g_i, g_p);
|
g_player[g_p].ps->max_ammo_amount[j]=GetGameVarID(*insptr++, g_i, g_p);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CON_MULVARVAR:
|
case CON_MULVARVAR:
|
||||||
|
@ -6137,7 +6141,7 @@ static int parse(void)
|
||||||
|
|
||||||
case CON_STARTTRACK:
|
case CON_STARTTRACK:
|
||||||
insptr++;
|
insptr++;
|
||||||
music_select=*insptr++;
|
music_select=(ud.volume_number*MAXLEVELS)+(*(insptr++));
|
||||||
if (map[(unsigned char)music_select].musicfn != NULL)
|
if (map[(unsigned char)music_select].musicfn != NULL)
|
||||||
playmusic(&map[(unsigned char)music_select].musicfn[0]);
|
playmusic(&map[(unsigned char)music_select].musicfn[0]);
|
||||||
break;
|
break;
|
||||||
|
@ -6262,7 +6266,7 @@ static int parse(void)
|
||||||
j = 1;
|
j = 1;
|
||||||
break;
|
break;
|
||||||
case GET_SHIELD:
|
case GET_SHIELD:
|
||||||
if (g_player[g_p].ps->shield_amount != max_player_health)
|
if (g_player[g_p].ps->shield_amount != g_player[g_p].ps->max_shield_amount)
|
||||||
j = 1;
|
j = 1;
|
||||||
break;
|
break;
|
||||||
case GET_SCUBA:
|
case GET_SCUBA:
|
||||||
|
|
|
@ -28,7 +28,7 @@ char MusicPtr[72000*2];
|
||||||
short global_random;
|
short global_random;
|
||||||
short neartagsector, neartagwall, neartagsprite;
|
short neartagsector, neartagwall, neartagsprite;
|
||||||
|
|
||||||
long neartaghitdist,lockclock,max_player_health,max_armour_amount,max_ammo_amount[MAX_WEAPONS];
|
long neartaghitdist,lockclock,start_armour_amount;
|
||||||
// JBF: gc modified to default to Atomic ed. default when using 1.3d CONs
|
// JBF: gc modified to default to Atomic ed. default when using 1.3d CONs
|
||||||
long gc=176;
|
long gc=176;
|
||||||
|
|
||||||
|
|
|
@ -781,7 +781,7 @@ static int osdcmd_give(const osdfuncparm_t *parm)
|
||||||
}
|
}
|
||||||
else if (!Bstrcasecmp(parm->parms[0], "health"))
|
else if (!Bstrcasecmp(parm->parms[0], "health"))
|
||||||
{
|
{
|
||||||
sprite[g_player[myconnectindex].ps->i].extra = 200;
|
sprite[g_player[myconnectindex].ps->i].extra = g_player[myconnectindex].ps->max_player_health<<1;
|
||||||
return OSDCMD_OK;
|
return OSDCMD_OK;
|
||||||
}
|
}
|
||||||
else if (!Bstrcasecmp(parm->parms[0], "weapons"))
|
else if (!Bstrcasecmp(parm->parms[0], "weapons"))
|
||||||
|
@ -793,7 +793,7 @@ static int osdcmd_give(const osdfuncparm_t *parm)
|
||||||
{
|
{
|
||||||
for (i=PISTOL_WEAPON;i<MAX_WEAPONS-(VOLUMEONE?6:1);i++)
|
for (i=PISTOL_WEAPON;i<MAX_WEAPONS-(VOLUMEONE?6:1);i++)
|
||||||
{
|
{
|
||||||
addammo(i,g_player[myconnectindex].ps,max_ammo_amount[i]);
|
addammo(i,g_player[myconnectindex].ps,g_player[myconnectindex].ps->max_ammo_amount[i]);
|
||||||
}
|
}
|
||||||
return OSDCMD_OK;
|
return OSDCMD_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -512,7 +512,7 @@ int shoot(int i,int atwith)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p >= 0 && g_player[p].ps->steroids_amount > 0 && g_player[p].ps->steroids_amount < 400)
|
if (p >= 0 && g_player[p].ps->steroids_amount > 0 && g_player[p].ps->steroids_amount < 400)
|
||||||
sprite[j].extra += (max_player_health>>2);
|
sprite[j].extra += (g_player[p].ps->max_player_health>>2);
|
||||||
|
|
||||||
if (hitspr >= 0 && sprite[hitspr].picnum != ACCESSSWITCH && sprite[hitspr].picnum != ACCESSSWITCH2)
|
if (hitspr >= 0 && sprite[hitspr].picnum != ACCESSSWITCH && sprite[hitspr].picnum != ACCESSSWITCH2)
|
||||||
{
|
{
|
||||||
|
@ -1076,7 +1076,7 @@ DOSKIPBULLETHOLE:
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p >= 0 && g_player[p].ps->steroids_amount > 0 && g_player[p].ps->steroids_amount < 400)
|
if (p >= 0 && g_player[p].ps->steroids_amount > 0 && g_player[p].ps->steroids_amount < 400)
|
||||||
sprite[j].extra += (max_player_health>>2);
|
sprite[j].extra += (g_player[p].ps->max_player_health>>2);
|
||||||
|
|
||||||
if (hitspr >= 0 && sprite[hitspr].picnum != ACCESSSWITCH && sprite[hitspr].picnum != ACCESSSWITCH2)
|
if (hitspr >= 0 && sprite[hitspr].picnum != ACCESSSWITCH && sprite[hitspr].picnum != ACCESSSWITCH2)
|
||||||
{
|
{
|
||||||
|
@ -3179,7 +3179,7 @@ static int doincrements(player_struct *p)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
p->extra_extra8 += 32;
|
p->extra_extra8 += 32;
|
||||||
if (p->last_extra < (max_player_health>>1) && (p->last_extra&3) == 0)
|
if (p->last_extra < (p->max_player_health>>1) && (p->last_extra&3) == 0)
|
||||||
spritesound(DUKE_LONGTERM_PAIN,p->i);
|
spritesound(DUKE_LONGTERM_PAIN,p->i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5123,41 +5123,41 @@ int getspritescore(long snum, long dapicnum)
|
||||||
return(120);
|
return(120);
|
||||||
|
|
||||||
case FREEZEAMMO__STATIC:
|
case FREEZEAMMO__STATIC:
|
||||||
if (g_player[snum].ps->ammo_amount[FREEZE_WEAPON] < max_ammo_amount[FREEZE_WEAPON]) return(10);
|
if (g_player[snum].ps->ammo_amount[FREEZE_WEAPON] < g_player[snum].ps->max_ammo_amount[FREEZE_WEAPON]) return(10);
|
||||||
return(1);
|
return(1);
|
||||||
case AMMO__STATIC:
|
case AMMO__STATIC:
|
||||||
if (g_player[snum].ps->ammo_amount[PISTOL_WEAPON] < max_ammo_amount[PISTOL_WEAPON]) return(10);
|
if (g_player[snum].ps->ammo_amount[PISTOL_WEAPON] < g_player[snum].ps->max_ammo_amount[PISTOL_WEAPON]) return(10);
|
||||||
return(1);
|
return(1);
|
||||||
case BATTERYAMMO__STATIC:
|
case BATTERYAMMO__STATIC:
|
||||||
if (g_player[snum].ps->ammo_amount[CHAINGUN_WEAPON] < max_ammo_amount[CHAINGUN_WEAPON]) return(20);
|
if (g_player[snum].ps->ammo_amount[CHAINGUN_WEAPON] < g_player[snum].ps->max_ammo_amount[CHAINGUN_WEAPON]) return(20);
|
||||||
return(1);
|
return(1);
|
||||||
case DEVISTATORAMMO__STATIC:
|
case DEVISTATORAMMO__STATIC:
|
||||||
if (g_player[snum].ps->ammo_amount[DEVISTATOR_WEAPON] < max_ammo_amount[DEVISTATOR_WEAPON]) return(25);
|
if (g_player[snum].ps->ammo_amount[DEVISTATOR_WEAPON] < g_player[snum].ps->max_ammo_amount[DEVISTATOR_WEAPON]) return(25);
|
||||||
return(1);
|
return(1);
|
||||||
case RPGAMMO__STATIC:
|
case RPGAMMO__STATIC:
|
||||||
if (g_player[snum].ps->ammo_amount[RPG_WEAPON] < max_ammo_amount[RPG_WEAPON]) return(50);
|
if (g_player[snum].ps->ammo_amount[RPG_WEAPON] < g_player[snum].ps->max_ammo_amount[RPG_WEAPON]) return(50);
|
||||||
return(1);
|
return(1);
|
||||||
case CRYSTALAMMO__STATIC:
|
case CRYSTALAMMO__STATIC:
|
||||||
if (g_player[snum].ps->ammo_amount[SHRINKER_WEAPON] < max_ammo_amount[SHRINKER_WEAPON]) return(10);
|
if (g_player[snum].ps->ammo_amount[SHRINKER_WEAPON] < g_player[snum].ps->max_ammo_amount[SHRINKER_WEAPON]) return(10);
|
||||||
return(1);
|
return(1);
|
||||||
case HBOMBAMMO__STATIC:
|
case HBOMBAMMO__STATIC:
|
||||||
if (g_player[snum].ps->ammo_amount[HANDBOMB_WEAPON] < max_ammo_amount[HANDBOMB_WEAPON]) return(30);
|
if (g_player[snum].ps->ammo_amount[HANDBOMB_WEAPON] < g_player[snum].ps->max_ammo_amount[HANDBOMB_WEAPON]) return(30);
|
||||||
return(1);
|
return(1);
|
||||||
case SHOTGUNAMMO__STATIC:
|
case SHOTGUNAMMO__STATIC:
|
||||||
if (g_player[snum].ps->ammo_amount[SHOTGUN_WEAPON] < max_ammo_amount[SHOTGUN_WEAPON]) return(25);
|
if (g_player[snum].ps->ammo_amount[SHOTGUN_WEAPON] < g_player[snum].ps->max_ammo_amount[SHOTGUN_WEAPON]) return(25);
|
||||||
return(1);
|
return(1);
|
||||||
|
|
||||||
case COLA__STATIC:
|
case COLA__STATIC:
|
||||||
if (sprite[g_player[snum].ps->i].extra < 100) return(10);
|
if (sprite[g_player[snum].ps->i].extra < g_player[snum].ps->max_player_health) return(10);
|
||||||
return(1);
|
return(1);
|
||||||
case SIXPAK__STATIC:
|
case SIXPAK__STATIC:
|
||||||
if (sprite[g_player[snum].ps->i].extra < 100) return(30);
|
if (sprite[g_player[snum].ps->i].extra < g_player[snum].ps->max_player_health) return(30);
|
||||||
return(1);
|
return(1);
|
||||||
case FIRSTAID__STATIC:
|
case FIRSTAID__STATIC:
|
||||||
if (g_player[snum].ps->firstaid_amount < 100) return(100);
|
if (g_player[snum].ps->firstaid_amount < g_player[snum].ps->max_player_health) return(100);
|
||||||
return(1);
|
return(1);
|
||||||
case SHIELD__STATIC:
|
case SHIELD__STATIC:
|
||||||
if (g_player[snum].ps->shield_amount < 100) return(50);
|
if (g_player[snum].ps->shield_amount < g_player[snum].ps->max_shield_amount) return(50);
|
||||||
return(1);
|
return(1);
|
||||||
case STEROIDS__STATIC:
|
case STEROIDS__STATIC:
|
||||||
if (g_player[snum].ps->steroids_amount < 400) return(30);
|
if (g_player[snum].ps->steroids_amount < 400) return(30);
|
||||||
|
@ -5177,7 +5177,7 @@ int getspritescore(long snum, long dapicnum)
|
||||||
if (g_player[snum].ps->boot_amount < 200) return(15);
|
if (g_player[snum].ps->boot_amount < 200) return(15);
|
||||||
return(1);
|
return(1);
|
||||||
case ATOMICHEALTH__STATIC:
|
case ATOMICHEALTH__STATIC:
|
||||||
if (sprite[g_player[snum].ps->i].extra < max_player_health<<1) return(50);
|
if (sprite[g_player[snum].ps->i].extra < g_player[snum].ps->max_player_health<<1) return(50);
|
||||||
return(1);
|
return(1);
|
||||||
case HOLODUKE__STATIC:
|
case HOLODUKE__STATIC:
|
||||||
if (g_player[snum].ps->holoduke_amount < 2400) return(5);
|
if (g_player[snum].ps->holoduke_amount < 2400) return(5);
|
||||||
|
|
|
@ -720,7 +720,7 @@ void resetinventory(int snum)
|
||||||
p->heat_on = 0;
|
p->heat_on = 0;
|
||||||
p->jetpack_on = 0;
|
p->jetpack_on = 0;
|
||||||
p->jetpack_amount = 0;
|
p->jetpack_amount = 0;
|
||||||
p->shield_amount = max_armour_amount;
|
p->shield_amount = start_armour_amount;
|
||||||
p->holoduke_on = -1;
|
p->holoduke_on = -1;
|
||||||
p->holoduke_amount = 0;
|
p->holoduke_amount = 0;
|
||||||
p->firstaid_amount = 0;
|
p->firstaid_amount = 0;
|
||||||
|
@ -1381,8 +1381,8 @@ static void resetpspritevars(char g)
|
||||||
|
|
||||||
if ((g&MODE_EOL) != MODE_EOL || g_player[j].ps->last_extra == 0)
|
if ((g&MODE_EOL) != MODE_EOL || g_player[j].ps->last_extra == 0)
|
||||||
{
|
{
|
||||||
g_player[j].ps->last_extra = max_player_health;
|
g_player[j].ps->last_extra = g_player[j].ps->max_player_health;
|
||||||
s->extra = max_player_health;
|
s->extra = g_player[j].ps->max_player_health;
|
||||||
g_player[j].ps->runspeed = dukefriction;
|
g_player[j].ps->runspeed = dukefriction;
|
||||||
}
|
}
|
||||||
else s->extra = g_player[j].ps->last_extra;
|
else s->extra = g_player[j].ps->last_extra;
|
||||||
|
|
|
@ -24,8 +24,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#include "duke3d.h"
|
#include "duke3d.h"
|
||||||
|
|
||||||
#define BYTEVERSION_COMPAT (BYTEVERSION-3)
|
|
||||||
|
|
||||||
void readsavenames(void)
|
void readsavenames(void)
|
||||||
{
|
{
|
||||||
long dummy,j;
|
long dummy,j;
|
||||||
|
@ -54,7 +52,7 @@ void readsavenames(void)
|
||||||
Bfclose(fil);
|
Bfclose(fil);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (dummy != BYTEVERSION && dummy != BYTEVERSION_COMPAT)
|
if (dummy != BYTEVERSION)
|
||||||
{
|
{
|
||||||
Bfclose(fil);
|
Bfclose(fil);
|
||||||
continue;
|
continue;
|
||||||
|
@ -91,7 +89,7 @@ int loadpheader(char spot,struct savehead *saveh)
|
||||||
// AddLog(g_szBuf);
|
// AddLog(g_szBuf);
|
||||||
|
|
||||||
if (kdfread(&bv,4,1,fil) != 1) goto corrupt;
|
if (kdfread(&bv,4,1,fil) != 1) goto corrupt;
|
||||||
if (bv != BYTEVERSION && bv != BYTEVERSION_COMPAT)
|
if (bv != BYTEVERSION)
|
||||||
{
|
{
|
||||||
FTA(114,g_player[myconnectindex].ps);
|
FTA(114,g_player[myconnectindex].ps);
|
||||||
kclose(fil);
|
kclose(fil);
|
||||||
|
@ -168,7 +166,7 @@ int loadplayer(int spot)
|
||||||
// AddLog(g_szBuf);
|
// AddLog(g_szBuf);
|
||||||
|
|
||||||
if (kdfread(&bv,4,1,fil) != 1) return -1;
|
if (kdfread(&bv,4,1,fil) != 1) return -1;
|
||||||
if (bv != BYTEVERSION && bv != BYTEVERSION_COMPAT)
|
if (bv != BYTEVERSION)
|
||||||
{
|
{
|
||||||
FTA(114,g_player[myconnectindex].ps);
|
FTA(114,g_player[myconnectindex].ps);
|
||||||
kclose(fil);
|
kclose(fil);
|
||||||
|
|
|
@ -3096,14 +3096,14 @@ CHECKINV1:
|
||||||
OnEvent(EVENT_USEMEDKIT,g_player[snum].ps->i,snum, -1);
|
OnEvent(EVENT_USEMEDKIT,g_player[snum].ps->i,snum, -1);
|
||||||
if (GetGameVarID(g_iReturnVarID,g_player[snum].ps->i,snum) == 0)
|
if (GetGameVarID(g_iReturnVarID,g_player[snum].ps->i,snum) == 0)
|
||||||
{
|
{
|
||||||
if (p->firstaid_amount > 0 && sprite[p->i].extra < max_player_health)
|
if (p->firstaid_amount > 0 && sprite[p->i].extra < p->max_player_health)
|
||||||
{
|
{
|
||||||
j = max_player_health-sprite[p->i].extra;
|
j = p->max_player_health-sprite[p->i].extra;
|
||||||
|
|
||||||
if ((unsigned long)p->firstaid_amount > j)
|
if ((unsigned long)p->firstaid_amount > j)
|
||||||
{
|
{
|
||||||
p->firstaid_amount -= j;
|
p->firstaid_amount -= j;
|
||||||
sprite[p->i].extra = max_player_health;
|
sprite[p->i].extra = p->max_player_health;
|
||||||
p->inven_icon = 1;
|
p->inven_icon = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -3383,13 +3383,13 @@ void checksectors(int snum)
|
||||||
p->holster_weapon = 1;
|
p->holster_weapon = 1;
|
||||||
p->weapon_pos = -1;
|
p->weapon_pos = -1;
|
||||||
}
|
}
|
||||||
if (sprite[p->i].extra <= (max_player_health-(max_player_health/10)))
|
if (sprite[p->i].extra <= (p->max_player_health-(p->max_player_health/10)))
|
||||||
{
|
{
|
||||||
sprite[p->i].extra += max_player_health/10;
|
sprite[p->i].extra += p->max_player_health/10;
|
||||||
p->last_extra = sprite[p->i].extra;
|
p->last_extra = sprite[p->i].extra;
|
||||||
}
|
}
|
||||||
else if (sprite[p->i].extra < max_player_health)
|
else if (sprite[p->i].extra < p->max_player_health)
|
||||||
sprite[p->i].extra = max_player_health;
|
sprite[p->i].extra = p->max_player_health;
|
||||||
}
|
}
|
||||||
else if (!isspritemakingsound(neartagsprite,FLUSH_TOILET))
|
else if (!isspritemakingsound(neartagsprite,FLUSH_TOILET))
|
||||||
spritesound(FLUSH_TOILET,neartagsprite);
|
spritesound(FLUSH_TOILET,neartagsprite);
|
||||||
|
@ -3423,7 +3423,7 @@ void checksectors(int snum)
|
||||||
hittype[neartagsprite].temp_data[0] = 1;
|
hittype[neartagsprite].temp_data[0] = 1;
|
||||||
sprite[neartagsprite].owner = p->i;
|
sprite[neartagsprite].owner = p->i;
|
||||||
|
|
||||||
if (sprite[p->i].extra < max_player_health)
|
if (sprite[p->i].extra < p->max_player_health)
|
||||||
{
|
{
|
||||||
sprite[p->i].extra++;
|
sprite[p->i].extra++;
|
||||||
spritesound(DUKE_DRINKING,p->i);
|
spritesound(DUKE_DRINKING,p->i);
|
||||||
|
|
Loading…
Reference in a new issue