From 5e59f8f09754b793f4fe7a28d3cab24c7edd6523 Mon Sep 17 00:00:00 2001 From: Sin! Date: Fri, 4 Aug 2017 22:25:40 +1000 Subject: [PATCH] [Bugfix] Fix disappearing grenade The way to reproduce: 1) Attach grenade launcher to the weapon 2) Switch to GL mode and reload GL 3) Switch back to bullets 4) Detach GL. GL would be spawned to the inventory, but loaded grenade would stay in the weapon. It happens because weapon has 2 magazines: for current active ammo and for secondary (inactive) ammo. So, you should force game to unload ammos from "GL's" mag. --- src/xrGame/WeaponMagazinedWGrenade.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/xrGame/WeaponMagazinedWGrenade.cpp b/src/xrGame/WeaponMagazinedWGrenade.cpp index f93033d48ab..102843fd517 100644 --- a/src/xrGame/WeaponMagazinedWGrenade.cpp +++ b/src/xrGame/WeaponMagazinedWGrenade.cpp @@ -512,11 +512,12 @@ bool CWeaponMagazinedWGrenade::Detach(LPCSTR item_section_name, bool b_spawn_ite !xr_strcmp(*m_sGrenadeLauncherName, item_section_name)) { m_flagsAddOnState &= ~CSE_ALifeItemWeapon::eWeaponAddonGrenadeLauncher; - if (m_bGrenadeMode) - { - UnloadMagazine(); - PerformSwitchGL(); - } + + // Now we need to unload GL's magazine + if (!m_bGrenadeMode) + PerformSwitchGL(); + UnloadMagazine(); + PerformSwitchGL(); UpdateAddonsVisibility();