From 3ea07b383ddf9f50df0f01c8d88b0d4c75b48e5f Mon Sep 17 00:00:00 2001 From: Mario Date: Tue, 13 Feb 2018 09:32:46 +1000 Subject: [PATCH] Add a function to check if the player is dual wielding --- qcsrc/server/weapons/common.qc | 13 +++++++++++++ qcsrc/server/weapons/tracing.qc | 9 +-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/qcsrc/server/weapons/common.qc b/qcsrc/server/weapons/common.qc index f69faa03a..9254ad581 100644 --- a/qcsrc/server/weapons/common.qc +++ b/qcsrc/server/weapons/common.qc @@ -12,6 +12,19 @@ #include #include +bool W_DualWielding(entity player) +{ + int held_weapons = 0; + for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot) + { + .entity weaponentity = weaponentities[slot]; + if(player.(weaponentity) && player.(weaponentity).m_switchweapon != WEP_Null) + ++held_weapons; + } + + return held_weapons > 1; +} + void W_GiveWeapon(entity e, int wep) { if (!wep) return; diff --git a/qcsrc/server/weapons/tracing.qc b/qcsrc/server/weapons/tracing.qc index 486ae180a..da6154794 100644 --- a/qcsrc/server/weapons/tracing.qc +++ b/qcsrc/server/weapons/tracing.qc @@ -135,14 +135,7 @@ void W_SetupShot_Dir_ProjectileSize_Range(entity ent, .entity weaponentity, vect ent.punchangle_x = recoil * -1; if (snd != SND_Null) { - int held_weapons = 0; // HACK: muffle weapon sounds slightly while dual wielding! - for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot) - { - .entity wep_ent = weaponentities[slot]; - if(ent.(wep_ent) && ent.(wep_ent).m_switchweapon != WEP_Null) - ++held_weapons; - } - sound (ent, chan, snd, ((held_weapons > 1) ? VOL_BASE * 0.7 : VOL_BASE), ATTN_NORM); + sound (ent, chan, snd, ((W_DualWielding(ent) > 1) ? VOL_BASE * 0.7 : VOL_BASE), ATTN_NORM); W_PlayStrengthSound(ent); } -- 2.39.2