From 5d119cf985a3a24aa988e399ec4277c40cb6caa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?eray=20or=C3=A7unus?= Date: Sat, 11 Jan 2020 20:36:46 +0300 Subject: Fixes 2 --- src/peds/PlayerPed.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/peds/PlayerPed.cpp') diff --git a/src/peds/PlayerPed.cpp b/src/peds/PlayerPed.cpp index df234bfb..8892fc2a 100644 --- a/src/peds/PlayerPed.cpp +++ b/src/peds/PlayerPed.cpp @@ -573,8 +573,6 @@ CPlayerPed::ProcessWeaponSwitch(CPad *padUsed) if (CDarkel::FrenzyOnGoing()) goto switchDetectDone; - // The fact that m_nSelectedWepSlot is int8 makes below loops circular loop. - if (padUsed->CycleWeaponRightJustDown() && !m_pPointGunAt) { if (TheCamera.PlayerWeaponMode.Mode != CCam::MODE_M16_1STPERSON @@ -596,12 +594,14 @@ CPlayerPed::ProcessWeaponSwitch(CPad *padUsed) && TheCamera.PlayerWeaponMode.Mode != CCam::MODE_SNIPER && TheCamera.PlayerWeaponMode.Mode != CCam::MODE_ROCKETLAUNCHER) { - for (m_nSelectedWepSlot = m_currentWeapon - 1; m_nSelectedWepSlot >= 0; --m_nSelectedWepSlot) { + for (m_nSelectedWepSlot = m_currentWeapon - 1; ; --m_nSelectedWepSlot) { + if (m_nSelectedWepSlot < WEAPONTYPE_UNARMED) + m_nSelectedWepSlot = WEAPONTYPE_DETONATOR; + if (HasWeapon(m_nSelectedWepSlot) && GetWeapon(m_nSelectedWepSlot).HasWeaponAmmoToBeUsed()) { goto switchDetectDone; } } - m_nSelectedWepSlot = WEAPONTYPE_DETONATOR; } } else if (CWeaponInfo::GetWeaponInfo((eWeaponType)m_currentWeapon)->m_eWeaponFire != WEAPON_FIRE_MELEE) { if (GetWeapon(m_currentWeapon).m_nAmmoTotal <= 0) { -- cgit v1.2.3