Shared: Add isempty function pointers to the respective weapons that need

it.
This commit is contained in:
Marco Cawthorne 2021-05-25 08:38:06 +02:00
parent 62317aa1e6
commit a5a370ef8f
6 changed files with 92 additions and 15 deletions

View file

@ -306,6 +306,17 @@ w_displacer_hud(void)
#endif
}
int
w_displacer_isempty(void)
{
player pl = (player)self;
if (pl.ammo_uranium <= 0)
return 1;
return 0;
}
void
w_displacer_hudpic(int selected, vector pos, float a)
{
@ -313,7 +324,7 @@ w_displacer_hudpic(int selected, vector pos, float a)
player pl = (player)self;
vector hud_col;
if (pl.ammo_uranium == 0)
if (w_displacer_isempty())
hud_col = [1,0,0];
else
hud_col = g_hud_color;
@ -366,7 +377,8 @@ weapon_t w_displacer =
.pmodel = w_displacer_pmodel,
.deathmsg = w_displacer_deathmsg,
.aimanim = w_displacer_aimanim,
.hudpic = w_displacer_hudpic
.hudpic = w_displacer_hudpic,
.isempty = w_displacer_isempty
};
/* entity definitions for pickups */

View file

@ -185,6 +185,7 @@ w_eagle_primary(void)
#else
View_SetMuzzleflash(MUZZLE_SMALL);
#endif
pl.w_idle_next = 10.0f;
}
void
@ -317,6 +318,17 @@ w_eagle_aimanim(void)
return self.flags & FL_CROUCHING ? ANIM_CR_AIMPYTHON : ANIM_AIMPYTHON;
}
int
w_eagle_isempty(void)
{
player pl = (player)self;
if (pl.eagle_mag <= 0 && pl.ammo_357 <= 0)
return 1;
return 0;
}
void
w_eagle_hudpic(int selected, vector pos, float a)
{
@ -324,7 +336,7 @@ w_eagle_hudpic(int selected, vector pos, float a)
player pl = (player)self;
vector hud_col;
if (pl.eagle_mag == 0 && pl.ammo_357 == 0)
if (w_eagle_isempty())
hud_col = [1,0,0];
else
hud_col = g_hud_color;
@ -336,7 +348,7 @@ w_eagle_hudpic(int selected, vector pos, float a)
"sprites/640hudof02.spr_0.tga",
[0,90/256],
[170/256,45/256],
g_hud_color,
hud_col,
a,
DRAWFLAG_ADDITIVE
);
@ -347,7 +359,7 @@ w_eagle_hudpic(int selected, vector pos, float a)
"sprites/640hudof01.spr_0.tga",
[0,90/256],
[170/256,45/256],
g_hud_color,
hud_col,
a,
DRAWFLAG_ADDITIVE
);
@ -377,7 +389,8 @@ weapon_t w_eagle =
.pmodel = w_eagle_pmodel,
.deathmsg = w_eagle_deathmsg,
.aimanim = w_eagle_aimanim,
.hudpic = w_eagle_hudpic
.hudpic = w_eagle_hudpic,
.isempty = w_eagle_isempty
};
#ifdef SERVER

View file

@ -268,6 +268,17 @@ w_m249_aimanim(void)
return self.flags & ANIM_CR_AIMMP5 ? ANIM_CR_AIMCROWBAR : ANIM_AIMMP5;
}
int
w_m249_isempty(void)
{
player pl = (player)self;
if (pl.m249_mag <= 0 && pl.ammo_556 <= 0)
return 1;
return 0;
}
void
w_m249_hudpic(int selected, vector pos, float a)
{
@ -275,7 +286,7 @@ w_m249_hudpic(int selected, vector pos, float a)
player pl = (player)self;
vector hud_col;
if (pl.m249_mag == 0 && pl.ammo_556 == 0)
if (w_m249_isempty())
hud_col = [1,0,0];
else
hud_col = g_hud_color;
@ -328,7 +339,8 @@ weapon_t w_m249 =
.pmodel = w_m249_pmodel,
.deathmsg = w_m249_deathmsg,
.aimanim = w_m249_aimanim,
.hudpic = w_m249_hudpic
.hudpic = w_m249_hudpic,
.isempty = w_m249_isempty
};
#ifdef SERVER

View file

@ -238,6 +238,17 @@ w_shockrifle_aimanim(void)
return self.flags & FL_CROUCHING ? ANIM_CR_AIMHIVE : ANIM_AIMHIVE;
}
int
w_shockrifle_isempty(void)
{
player pl = (player)self;
if (pl.ammo_shock <= 0)
return 1;
return 0;
}
void
w_shockrifle_hudpic(int selected, vector pos, float a)
{
@ -245,7 +256,7 @@ w_shockrifle_hudpic(int selected, vector pos, float a)
player pl = (player)self;
vector hud_col;
if (pl.ammo_shock == 0)
if (w_shockrifle_isempty())
hud_col = [1,0,0];
else
hud_col = g_hud_color;
@ -298,7 +309,8 @@ weapon_t w_shockrifle =
.pmodel = w_shockrifle_pmodel,
.deathmsg = w_shockrifle_deathmsg,
.aimanim = w_shockrifle_aimanim,
.hudpic = w_shockrifle_hudpic
.hudpic = w_shockrifle_hudpic,
.isempty = w_shockrifle_isempty
};
#ifdef SERVER

View file

@ -125,7 +125,11 @@ w_sniperrifle_primary(void)
}
#ifdef SERVER
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 40, [0.00873, 0.00873], WEAPON_SNIPERRIFLE);
if (pl.viewzoom != 1.0)
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 65, [0, 0], WEAPON_SNIPERRIFLE);
else
TraceAttack_FireBullets(1, pl.origin + pl.view_ofs, 65, [0.05, 0.05], WEAPON_SNIPERRIFLE);
sound(pl, CHAN_WEAPON, "weapons/sniper_fire.wav", 1, ATTN_NORM);
#else
View_SetMuzzleflash(MUZZLE_SMALL);
@ -253,6 +257,17 @@ w_sniperrifle_aimanim(void)
return self.flags & FL_CROUCHING ? ANIM_CR_AIMPYTHON : ANIM_AIMPYTHON;
}
int
w_sniperrifle_isempty(void)
{
player pl = (player)self;
if (pl.sniper_mag <= 0 && pl.ammo_762 <= 0)
return 1;
return 0;
}
void
w_sniperrifle_hudpic(int s, vector pos, float a)
{
@ -260,7 +275,7 @@ w_sniperrifle_hudpic(int s, vector pos, float a)
player pl = (player)self;
vector hud_col;
if (pl.sniper_mag == 0 && pl.ammo_762 == 0)
if (w_sniperrifle_isempty())
hud_col = [1,0,0];
else
hud_col = g_hud_color;
@ -295,7 +310,8 @@ weapon_t w_sniperrifle =
.pmodel = w_sniperrifle_pmodel,
.deathmsg = w_sniperrifle_deathmsg,
.aimanim = w_sniperrifle_aimanim,
.hudpic = w_sniperrifle_hudpic
.hudpic = w_sniperrifle_hudpic,
.isempty = w_sniperrifle_isempty
};
#ifdef SERVER

View file

@ -381,6 +381,17 @@ w_sporelauncher_aimanim(void)
return self.flags & FL_CROUCHING ? ANIM_CR_AIMBOW : ANIM_AIMBOW;
}
int
w_sporelauncher_isempty(void)
{
player pl = (player)self;
if (pl.sporelauncher_mag <= 0 && pl.ammo_spore <= 0)
return 1;
return 0;
}
void
w_sporelauncher_hudpic(int selected, vector pos, float a)
{
@ -388,7 +399,7 @@ w_sporelauncher_hudpic(int selected, vector pos, float a)
player pl = (player)self;
vector hud_col;
if (pl.sporelauncher_mag == 0 && pl.ammo_spore == 0)
if (w_sporelauncher_isempty())
hud_col = [1,0,0];
else
hud_col = g_hud_color;
@ -441,7 +452,8 @@ weapon_t w_sporelauncher =
.pmodel = w_sporelauncher_pmodel,
.deathmsg = w_sporelauncher_deathmsg,
.aimanim = w_sporelauncher_aimanim,
.hudpic = w_sporelauncher_hudpic
.hudpic = w_sporelauncher_hudpic,
.isempty = w_sporelauncher_isempty
};
#ifdef SERVER