From 346e5c6293878119656c79ef517ebc3a5e9ad558 Mon Sep 17 00:00:00 2001 From: Greysa <52637570+Greysa@users.noreply.github.com> Date: Mon, 23 Mar 2026 18:32:05 +1100 Subject: [PATCH] fix for issue #580 --- Tactical/Interface Items.cpp | 6 ++++-- Tactical/Items.cpp | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Tactical/Interface Items.cpp b/Tactical/Interface Items.cpp index 4f3eb237..5272311a 100644 --- a/Tactical/Interface Items.cpp +++ b/Tactical/Interface Items.cpp @@ -6076,7 +6076,8 @@ void ItemDescAmmoCallback(GUI_BUTTON *btn,INT32 reason) gfItemAmmoDown = FALSE; //CHRISL: We dont' want to be able to reload guns using the ammo crate from this function - if((gpItemPointer != NULL && Magazine[Item[gpItemPointer->usItem].ubClassIndex].ubMagType >= AMMO_BOX) || !EnoughPoints(gpItemDescSoldier, APBPConstants[AP_RELOAD_GUN], 0, TRUE))//dnl ch65 040913 + //Greysa: add check for ammo item + if( gpItemPointer != NULL && ( (Item[gpItemPointer->usItem].usItemClass != IC_AMMO || Magazine[Item[gpItemPointer->usItem].ubClassIndex].ubMagType >= AMMO_BOX) ) || !EnoughPoints(gpItemDescSoldier, APBPConstants[AP_RELOAD_GUN], 0, TRUE) )//dnl ch65 040913 { fInterfacePanelDirty = DIRTYLEVEL2; btn->uiFlags &= (~BUTTON_CLICKED_ON ); @@ -6099,7 +6100,8 @@ void ItemDescAmmoCallback(GUI_BUTTON *btn,INT32 reason) else { //holding an item - if(Magazine[Item[gpItemPointer->usItem].ubClassIndex].ubCalibre == Weapon[Item[gpItemDescObject->usItem].ubClassIndex].ubCalibre) + //Greysa: add check for ammo item + if( Item[gpItemPointer->usItem].usItemClass == IC_AMMO && Magazine[Item[gpItemPointer->usItem].ubClassIndex].ubCalibre == Weapon[Item[gpItemDescObject->usItem].ubClassIndex].ubCalibre ) { ReloadGun(gpItemDescSoldier, gpItemDescObject, gpItemPointer, ubStatusIndex); } diff --git a/Tactical/Items.cpp b/Tactical/Items.cpp index 269b4e77..890369a3 100644 --- a/Tactical/Items.cpp +++ b/Tactical/Items.cpp @@ -3919,7 +3919,7 @@ BOOLEAN AutoReload( SOLDIERTYPE * pSoldier, bool aReloadEvenIfNotEmpty ) StatChange(pSoldier, DEXTAMT, 5, FALSE); } - DirtyMercPanelInterface(pSoldier, DIRTYLEVEL2); // Greysa: what does this even do? + DirtyMercPanelInterface(pSoldier, DIRTYLEVEL2); PlayJA2Sample(Weapon[Item[pObj->usItem].ubClassIndex].ManualReloadSound, RATE_11025, SoundVolume(HIGHVOLUME, pSoldier->sGridNo), 1, SoundDir(pSoldier->sGridNo)); ScreenMsg(FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, Message[STR_UNJAMMED], pSoldier->GetName(), ItemNames[pObj->usItem]); // merc voice feedback? @@ -3962,7 +3962,7 @@ BOOLEAN AutoReload( SOLDIERTYPE * pSoldier, bool aReloadEvenIfNotEmpty ) StatChange(pSoldier, DEXTAMT, 5, FALSE); } - DirtyMercPanelInterface(pSoldier, DIRTYLEVEL2); // Greysa: what does this do? + DirtyMercPanelInterface(pSoldier, DIRTYLEVEL2); PlayJA2Sample(Weapon[Item[pObj2->usItem].ubClassIndex].ManualReloadSound, RATE_11025, SoundVolume(HIGHVOLUME, pSoldier->sGridNo), 1, SoundDir(pSoldier->sGridNo)); ScreenMsg(FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, Message[STR_UNJAMMED], pSoldier->GetName(), ItemNames[pObj2->usItem]); // merc voice feedback?