From 4173eadae2291b2853a268e965097c9305f126d5 Mon Sep 17 00:00:00 2001 From: Sarge-117 <108380086+Sarge-117@users.noreply.github.com> Date: Wed, 19 Oct 2022 18:51:42 -0700 Subject: [PATCH] Fix tunics/boots on C-buttons not always being enabled (#1782) * Always enable C-buttons with equipment * Fix for it still sometimes being disables --- soh/src/code/z_parameter.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/soh/src/code/z_parameter.c b/soh/src/code/z_parameter.c index dd150913b..02f9395f5 100644 --- a/soh/src/code/z_parameter.c +++ b/soh/src/code/z_parameter.c @@ -949,15 +949,7 @@ void func_80083108(GlobalContext* globalCtx) { gSaveContext.buttonStatus[0] = BTN_DISABLED; for (i = 1; i < ARRAY_COUNT(gSaveContext.equips.buttonItems); i++) { - if ((gSaveContext.equips.buttonItems[i] >= ITEM_SHIELD_DEKU) && - (gSaveContext.equips.buttonItems[i] <= ITEM_BOOTS_HOVER)) { - // Equipment on c-buttons is always enabled - if (gSaveContext.buttonStatus[BUTTON_STATUS_INDEX(i)] == BTN_DISABLED) { - sp28 = 1; - } - - gSaveContext.buttonStatus[BUTTON_STATUS_INDEX(i)] = BTN_ENABLED; - } else if (func_8008F2F8(globalCtx) == 2) { + if (func_8008F2F8(globalCtx) == 2) { if ((gSaveContext.equips.buttonItems[i] != ITEM_HOOKSHOT) && (gSaveContext.equips.buttonItems[i] != ITEM_LONGSHOT)) { if (gSaveContext.buttonStatus[BUTTON_STATUS_INDEX(i)] == BTN_ENABLED) { @@ -1100,6 +1092,18 @@ void func_80083108(GlobalContext* globalCtx) { } } + for (i = 1; i < ARRAY_COUNT(gSaveContext.equips.buttonItems); i++) { + if ((gSaveContext.equips.buttonItems[i] >= ITEM_SHIELD_DEKU) && + (gSaveContext.equips.buttonItems[i] <= ITEM_BOOTS_HOVER)) { + // Equipment on c-buttons is always enabled + if (gSaveContext.buttonStatus[BUTTON_STATUS_INDEX(i)] == BTN_DISABLED) { + sp28 = 1; + } + + gSaveContext.buttonStatus[BUTTON_STATUS_INDEX(i)] = BTN_ENABLED; + } + } + if (interfaceCtx->restrictions.bottles != 0) { for (i = 1; i < ARRAY_COUNT(gSaveContext.equips.buttonItems); i++) { if ((gSaveContext.equips.buttonItems[i] >= ITEM_BOTTLE) && @@ -1253,6 +1257,8 @@ void func_80083108(GlobalContext* globalCtx) { (gSaveContext.equips.buttonItems[i] != ITEM_OCARINA_TIME) && !((gSaveContext.equips.buttonItems[i] >= ITEM_BOTTLE) && (gSaveContext.equips.buttonItems[i] <= ITEM_POE)) && + !((gSaveContext.equips.buttonItems[i] >= ITEM_SHIELD_DEKU) && // Never disable equipment + (gSaveContext.equips.buttonItems[i] <= ITEM_BOOTS_HOVER)) && // (tunics/boots) on C-buttons !((gSaveContext.equips.buttonItems[i] >= ITEM_WEIRD_EGG) && (gSaveContext.equips.buttonItems[i] <= ITEM_CLAIM_CHECK))) { if ((globalCtx->sceneNum != SCENE_TAKARAYA) ||