diff --git a/src/game/bondgun.c b/src/game/bondgun.c index 81472dbb9..ac599ade4 100644 --- a/src/game/bondgun.c +++ b/src/game/bondgun.c @@ -1310,6 +1310,7 @@ s32 bgunTickIncIdle(struct handweaponinfo *info, s32 handnum, struct hand *hand, hand->count = 0; if (bgunSetState(handnum, HANDSTATE_RELOAD)) { + hand->modenext = HANDMODE_NONE; return lvupdate; } } diff --git a/src/game/lv.c b/src/game/lv.c index 75e7ecc3e..97b74e1de 100644 --- a/src/game/lv.c +++ b/src/game/lv.c @@ -1291,13 +1291,14 @@ Gfx *lvRender(Gfx *gdl) // Handle opening doors and reloading if (g_Vars.currentplayer->bondactivateorreload & JO_ACTION_RELOAD) { - if (g_Vars.currentplayer->hands[HAND_RIGHT].state != HANDSTATE_RELOAD){ + if (g_Vars.currentplayer->hands[HAND_RIGHT].state != HANDSTATE_RELOAD) { bgunReloadIfPossible(HAND_RIGHT); - } + if (g_Vars.currentplayer->hands[HAND_LEFT].state != HANDSTATE_RELOAD) { bgunReloadIfPossible(HAND_LEFT); } + g_Vars.currentplayer->bondactivateorreload = (g_Vars.currentplayer->bondactivateorreload & ~JO_ACTION_RELOAD) | (g_Vars.currentplayer->bondactivateorreload & 0x0); } if (g_Vars.currentplayer->bondactivateorreload & JO_ACTION_ACTIVATE) {