Wrench now has cells, and will display it in the HUD

Some code cleanup
This commit is contained in:
Xylemon 2022-07-14 21:07:46 -07:00
parent 7fc6f85cbc
commit de3ced89cf
4 changed files with 80 additions and 39 deletions

27
src/client/defs.h Normal file
View File

@ -0,0 +1,27 @@
/*
* Copyright (c) 2016-2022 Marco Cawthorne <marco@icculus.org>
* Copyright (c) 2022 Gethyn ThomasQuail <xylemon@posteo.net>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#define MAX_A_CELLS 200
var string g_dmsg_spr;
var string g_tfchud1_spr;
var string g_tfchud2_spr;
var string g_tfchud3_spr;
var string g_tfchud4_spr;
var string g_tfchud5_spr;
var string g_tfchud6_spr;
var string g_tfchud7_spr;

View File

@ -49,21 +49,15 @@ ClientGame_RendererRestart(string rstr)
FX_Spark_Init(); FX_Spark_Init();
FX_Impact_Init(); FX_Impact_Init();
precache_model("sprites/640hud1.spr"); /* HUD selection icons */
precache_model("sprites/640hud2.spr"); g_dmsg_spr = spriteframe("sprites/tfc_dmsg.spr", 0, 0.0f);
precache_model("sprites/640hud3.spr"); g_tfchud1_spr = spriteframe("sprites/tfchud01.spr", 0, 0.0f);
precache_model("sprites/640hud4.spr"); g_tfchud2_spr = spriteframe("sprites/tfchud02.spr", 0, 0.0f);
precache_model("sprites/640hud5.spr"); g_tfchud3_spr = spriteframe("sprites/tfchud03.spr", 0, 0.0f);
precache_model("sprites/640hud6.spr"); g_tfchud4_spr = spriteframe("sprites/tfchud04.spr", 0, 0.0f);
g_tfchud5_spr = spriteframe("sprites/tfchud05.spr", 0, 0.0f);
precache_model("sprites/tfc_dmsg.spr"); g_tfchud6_spr = spriteframe("sprites/tfchud06.spr", 0, 0.0f);
precache_model("sprites/tfchud01.spr"); g_tfchud7_spr = spriteframe("sprites/tfchud07.spr", 0, 0.0f);
precache_model("sprites/tfchud02.spr");
precache_model("sprites/tfchud03.spr");
precache_model("sprites/tfchud04.spr");
precache_model("sprites/tfchud05.spr");
precache_model("sprites/tfchud06.spr");
precache_model("sprites/tfchud07.spr");
/* there's also muzzleflash.spr, but that's just MUZZLE_SMALL again */ /* there's also muzzleflash.spr, but that's just MUZZLE_SMALL again */
MUZZLE_RIFLE = (int)getmodelindex("sprites/muzzleflash1.spr"); MUZZLE_RIFLE = (int)getmodelindex("sprites/muzzleflash1.spr");

View File

@ -11,6 +11,7 @@
../../../src/shared/defs.h ../../../src/shared/defs.h
../../../valve/src/client/defs.h ../../../valve/src/client/defs.h
../../../src/client/defs.h ../../../src/client/defs.h
defs.h
../../../src/vgui/include.src ../../../src/vgui/include.src

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (c) 2016-2020 Marco Cawthorne <marco@icculus.org> * Copyright (c) 2016-2020 Marco Cawthorne <marco@icculus.org>
* Copyright (c) 2022 Gethyn ThomasQuail <xylemon@posteo.net>
* *
* Permission to use, copy, modify, and distribute this software for any * Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
@ -40,9 +41,7 @@ w_wrench_precache(void)
void void
w_wrench_updateammo(player pl) w_wrench_updateammo(player pl)
{ {
#ifdef SERVER Weapons_UpdateAmmo(pl, __NULL__, pl.m_iAmmoCells, __NULL__);
Weapons_UpdateAmmo(pl, __NULL__, __NULL__, __NULL__);
#endif
} }
string string
@ -127,26 +126,21 @@ w_wrench_primary(player pl)
FX_Impact(IMPACT_MELEE, trace_endpos, trace_plane_normal); FX_Impact(IMPACT_MELEE, trace_endpos, trace_plane_normal);
} }
/* don't bother with decals, we got squibs */
if (trace_ent.iBleeds) {
FX_Blood(trace_endpos, [1,0,0]);
} else {
FX_Impact(IMPACT_MELEE, trace_endpos, trace_plane_normal);
}
/* Damage is between 12 - 20, so let's just do 15 for now */
if (trace_ent.takedamage) { if (trace_ent.takedamage) {
Damage_Apply(trace_ent, self, 10, WEAPON_WRENCH, DMG_BLUNT); Damage_Apply(trace_ent, pl, Skill_GetValue("plr_crowbar", 15), WEAPON_WRENCH, DMG_BLUNT);
if (trace_ent.iBleeds) {
if (!trace_ent.iBleeds) { Sound_Play(self, CHAN_WEAPON, "weapon_crowbar.hitbody");
return;
}
if (random() < 0.33) {
sound(pl, 8, "weapons/cbar_hitbod1.wav", 1, ATTN_NORM);
} else if (random() < 0.66) {
sound(pl, 8, "weapons/cbar_hitbod2.wav", 1, ATTN_NORM);
} else {
sound(pl, 8, "weapons/cbar_hitbod3.wav", 1, ATTN_NORM);
} }
} else { } else {
if (random() < 0.5) { Sound_Play(self, CHAN_WEAPON, "weapon_crowbar.hit");
sound(pl, 8, "weapons/cbar_hit1.wav", 1, ATTN_NORM);
} else {
sound(pl, 8, "weapons/cbar_hit2.wav", 1, ATTN_NORM);
}
} }
#endif #endif
} }
@ -163,13 +157,36 @@ w_wrench_release(player pl)
pl.w_idle_next = 15.0f; pl.w_idle_next = 15.0f;
} }
void
w_wrench_crosshair(player pl)
{
#ifdef CLIENT
vector aicon_pos;
aicon_pos = g_hudmins + [g_hudres[0] - 48, g_hudres[1] - 42];
drawsubpic(
aicon_pos,
[24,24],
g_hud7_spr,
[0,96/128],
[24/256,24/128],
g_hud_color,
pSeatLocal->m_flAmmo2Alpha,
DRAWFLAG_ADDITIVE
);
HUD_DrawAmmo2();
#endif
}
float float
w_wrench_aimanim(player pl) w_wrench_aimanim(player pl)
{ {
return self.flags & FL_CROUCHING ? ANIM_CR_AIMCROWBAR : ANIM_AIMCROWBAR; return self.flags & FL_CROUCHING ? ANIM_CR_AIMCROWBAR : ANIM_AIMCROWBAR;
} }
void void
w_wrench_hudpic(player pl, int selected, vector pos, float a) w_wrench_hudpic(player pl, int selected, vector pos, float a)
{ {
#ifdef CLIENT #ifdef CLIENT
@ -177,7 +194,7 @@ w_wrench_hudpic(player pl, int selected, vector pos, float a)
drawsubpic( drawsubpic(
pos, pos,
[170,45], [170,45],
"sprites/tfchud04.spr_0.tga", g_tfchud4_spr,
[0,180/256], [0,180/256],
[170/256,45/256], [170/256,45/256],
g_hud_color, g_hud_color,
@ -188,7 +205,7 @@ w_wrench_hudpic(player pl, int selected, vector pos, float a)
drawsubpic( drawsubpic(
pos, pos,
[170,45], [170,45],
"sprites/tfchud03.spr_0.tga", g_tfchud3_spr,
[0,135/256], [0,135/256],
[170/256,45/256], [170/256,45/256],
g_hud_color, g_hud_color,
@ -196,6 +213,8 @@ w_wrench_hudpic(player pl, int selected, vector pos, float a)
DRAWFLAG_ADDITIVE DRAWFLAG_ADDITIVE
); );
} }
HUD_DrawAmmoBar(pos, pl.m_iAmmoCells, MAX_A_CELLS, a);
#endif #endif
} }
@ -211,7 +230,7 @@ weapon_t w_wrench =
.secondary = __NULL__, .secondary = __NULL__,
.reload = __NULL__, .reload = __NULL__,
.release = w_wrench_release, .release = w_wrench_release,
.postdraw = __NULL__, .postdraw = w_wrench_crosshair,
.precache = w_wrench_precache, .precache = w_wrench_precache,
.pickup = __NULL__, .pickup = __NULL__,
.updateammo = w_wrench_updateammo, .updateammo = w_wrench_updateammo,