From 86ab7194695e60de078cbe87ece8a0eb1b5701c8 Mon Sep 17 00:00:00 2001 From: FosterProgramming Date: Sat, 3 Jan 2026 08:39:59 +0100 Subject: [PATCH] Disable L button config (throw ball shortcut or move description) when there is overlap with L=A option (#8332) --- src/battle_controller_player.c | 6 ++++-- src/battle_interface.c | 9 +++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index aba9d7d837..00f88a74a5 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -242,7 +242,8 @@ static void HandleInputChooseAction(u32 battler) else gPlayerDpadHoldFrames = 0; - if (B_LAST_USED_BALL == TRUE && B_LAST_USED_BALL_CYCLE == TRUE) + if (B_LAST_USED_BALL == TRUE && B_LAST_USED_BALL_CYCLE == TRUE + && !(B_LAST_USED_BALL_BUTTON == L_BUTTON && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_L_EQUALS_A)) { if (!gLastUsedBallMenuPresent) { @@ -880,7 +881,8 @@ void HandleInputChooseMove(u32 battler) MoveSelectionDisplayMoveType(battler); } } - else if (JOY_NEW(B_MOVE_DESCRIPTION_BUTTON)) + else if (JOY_NEW(B_MOVE_DESCRIPTION_BUTTON) && + !(B_MOVE_DESCRIPTION_BUTTON == L_BUTTON && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_L_EQUALS_A)) { gBattleStruct->descriptionSubmenu = TRUE; TryMoveSelectionDisplayMoveDescription(battler); diff --git a/src/battle_interface.c b/src/battle_interface.c index f87a889641..a48225b966 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -2987,6 +2987,9 @@ void TryToAddMoveInfoWindow(void) if (!B_SHOW_MOVE_DESCRIPTION) return; + if (B_MOVE_DESCRIPTION_BUTTON == L_BUTTON && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_L_EQUALS_A) + return; + LoadSpritePalette(&sSpritePalette_AbilityPopUp); if (GetSpriteTileStartByTag(MOVE_INFO_WINDOW_TAG) == 0xFFFF) LoadSpriteSheet(&sSpriteSheet_MoveInfoWindow); @@ -3096,6 +3099,9 @@ static void TryHideOrRestoreLastUsedBall(u8 caseId) void TryHideLastUsedBall(void) { + if (B_LAST_USED_BALL_BUTTON == L_BUTTON && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_L_EQUALS_A) + return; + if (B_LAST_USED_BALL == TRUE) TryHideOrRestoreLastUsedBall(0); } @@ -3105,6 +3111,9 @@ void TryRestoreLastUsedBall(void) if (B_LAST_USED_BALL == FALSE) return; + if (B_LAST_USED_BALL_BUTTON == L_BUTTON && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_L_EQUALS_A) + return; + if (gBattleStruct->ballSpriteIds[0] != MAX_SPRITES) TryHideOrRestoreLastUsedBall(1); else