Skip to content

Commit 4b49f63

Browse files
committed
Fix mismatched damage glock18 in burst mode 18 against 25 (GLOCK18_DAMAGE)
1 parent 051dc07 commit 4b49f63

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

regamedll/dlls/weapons.cpp

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -767,9 +767,15 @@ void CBasePlayerWeapon::FireRemaining(int &shotsFired, float &shootTime, BOOL bI
767767
flag = 0;
768768
#endif
769769

770+
#ifdef REGAMEDLL_API
771+
float flBaseDamage = CSPlayerWeapon()->m_flBaseDamage;
772+
#else
773+
float flBaseDamage = bIsGlock ? GLOCK18_DAMAGE : FAMAS_DAMAGE;
774+
#endif
775+
770776
if (bIsGlock)
771777
{
772-
vecDir = m_pPlayer->FireBullets3(vecSrc, gpGlobals->v_forward, 0.05, 8192, 1, BULLET_PLAYER_9MM, 18, 0.9, m_pPlayer->pev, true, m_pPlayer->random_seed);
778+
vecDir = m_pPlayer->FireBullets3(vecSrc, gpGlobals->v_forward, 0.05, 8192, 1, BULLET_PLAYER_9MM, flBaseDamage, 0.9, m_pPlayer->pev, true, m_pPlayer->random_seed);
773779
#ifndef REGAMEDLL_FIXES
774780
--m_pPlayer->ammo_9mm;
775781
#endif
@@ -778,8 +784,7 @@ void CBasePlayerWeapon::FireRemaining(int &shotsFired, float &shootTime, BOOL bI
778784
}
779785
else
780786
{
781-
782-
vecDir = m_pPlayer->FireBullets3(vecSrc, gpGlobals->v_forward, m_fBurstSpread, 8192, 2, BULLET_PLAYER_556MM, 30, 0.96, m_pPlayer->pev, false, m_pPlayer->random_seed);
787+
vecDir = m_pPlayer->FireBullets3(vecSrc, gpGlobals->v_forward, m_fBurstSpread, 8192, 2, BULLET_PLAYER_556MM, flBaseDamage, 0.96, m_pPlayer->pev, false, m_pPlayer->random_seed);
783788
#ifndef REGAMEDLL_FIXES
784789
--m_pPlayer->ammo_556nato;
785790
#endif
@@ -1856,11 +1861,11 @@ void CWeaponBox::Touch(CBaseEntity *pOther)
18561861

18571862
bool bRemove = true;
18581863

1859-
#ifdef REGAMEDLL_FIXES
1864+
#ifdef REGAMEDLL_FIXES
18601865
CBasePlayerItem *givenItem = nullptr;
18611866
#else
18621867
bool givenItem = false;
1863-
#endif
1868+
#endif
18641869

18651870
// go through my weapons and try to give the usable ones to the player.
18661871
// it's important the the player be given ammo first, so the weapons code doesn't refuse
@@ -2055,7 +2060,7 @@ void CWeaponBox::Touch(CBaseEntity *pOther)
20552060
pItem->AttachToPlayer(pPlayer);
20562061
#ifdef REGAMEDLL_FIXES
20572062
givenItem = pItem;
2058-
#else
2063+
#else
20592064
givenItem = true;
20602065
#endif
20612066
}
@@ -2095,13 +2100,13 @@ void CWeaponBox::Touch(CBaseEntity *pOther)
20952100
{
20962101
EMIT_SOUND(ENT(pPlayer->pev), CHAN_ITEM, "items/gunpickup2.wav", VOL_NORM, ATTN_NORM);
20972102

2098-
#ifdef REGAMEDLL_FIXES
2103+
#ifdef REGAMEDLL_FIXES
20992104
// BUGBUG: weaponbox links gun to player, then ammo is given
21002105
// so FShouldSwitchWeapon's CanHolster (which checks ammo) check inside AddPlayerItem
21012106
// return FALSE, causing an unarmed player to not deploy any weaponbox grenade
21022107
if (pPlayer->m_pActiveItem != givenItem && CSGameRules()->FShouldSwitchWeapon(pPlayer, givenItem))
21032108
{
2104-
// This re-check is done after ammo is given
2109+
// This re-check is done after ammo is given
21052110
// so it ensures player properly deploys grenade from floor
21062111
pPlayer->SwitchWeapon(givenItem);
21072112
}

0 commit comments

Comments
 (0)