From a2678a18ed087f9886469e006d36784b8f40bed5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Mu=C3=B1oz?= Date: Tue, 10 Oct 2023 19:03:48 -0300 Subject: [PATCH] Ensure HasPrimary flag assignation on successful weapon removal (#866) --- regamedll/dlls/player.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/regamedll/dlls/player.cpp b/regamedll/dlls/player.cpp index 9861c35f..09281526 100644 --- a/regamedll/dlls/player.cpp +++ b/regamedll/dlls/player.cpp @@ -8056,8 +8056,10 @@ CBaseEntity *EXT_FUNC CBasePlayer::__API_HOOK(DropPlayerItem)(const char *pszIte g_pGameRules->GetNextBestWeapon(this, pWeapon); UTIL_MakeVectors(pev->angles); +#ifndef REGAMEDLL_FIXES if (pWeapon->iItemSlot() == PRIMARY_WEAPON_SLOT) - m_bHasPrimary = false; + m_bHasPrimary = false; // I may have more than just 1 primary weapon :) +#endif if (FClassnameIs(pWeapon->pev, "weapon_c4")) { @@ -8127,6 +8129,12 @@ CBaseEntity *EXT_FUNC CBasePlayer::__API_HOOK(DropPlayerItem)(const char *pszIte return nullptr; } +#ifdef REGAMEDLL_FIXES + if (!m_rgpPlayerItems[PRIMARY_WEAPON_SLOT]) { + m_bHasPrimary = false; // ensure value assignation on successful weapon removal + } +#endif + if (FClassnameIs(pWeapon->pev, "weapon_c4")) { pWeaponBox->m_bIsBomb = true;