From 5c05715585347f77d1b86366bf1de93ddd5e06f8 Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Thu, 20 Mar 2025 10:12:37 +0100 Subject: [PATCH] Adds move description battle config (#6364) --- include/config/battle.h | 3 +++ src/battle_controller_player.c | 24 +++++++++++++++--------- src/battle_interface.c | 5 ++++- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/include/config/battle.h b/include/config/battle.h index bacdc770d9..8ef347cdcd 100644 --- a/include/config/battle.h +++ b/include/config/battle.h @@ -221,6 +221,9 @@ // Ingame partner flag #define B_SHOW_PARTNER_TARGET FALSE // Shows the battler partner will target. +// Move description menu +#define B_SHOW_MOVE_DESCRIPTION TRUE // Shows move information in battler + // Terrain settings #define B_TERRAIN_BG_CHANGE TRUE // If set to TRUE, terrain moves permanently change the default battle background until the effect fades. #define B_THUNDERSTORM_TERRAIN TRUE // If TRUE, overworld Thunderstorm generates Rain and Electric Terrain as in Gen 8. diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index b84b87d0ed..96404e031e 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -86,6 +86,7 @@ static void MoveSelectionDisplayPpNumber(u32 battler); static void MoveSelectionDisplayPpString(u32 battler); static void MoveSelectionDisplayMoveType(u32 battler); static void MoveSelectionDisplayMoveNames(u32 battler); +static void TryMoveSelectionDisplayMoveDescription(u32 battler); static void MoveSelectionDisplayMoveDescription(u32 battler); static void SwitchIn_HandleSoundAndEnd(u32 battler); static void WaitForMonSelection(u32 battler); @@ -786,8 +787,7 @@ void HandleInputChooseMove(u32 battler) MoveSelectionCreateCursorAt(gMoveSelectionCursor[battler], 0); MoveSelectionDisplayPpNumber(battler); MoveSelectionDisplayMoveType(battler); - if (gBattleStruct->descriptionSubmenu) - MoveSelectionDisplayMoveDescription(battler); + TryMoveSelectionDisplayMoveDescription(battler); TryChangeZTrigger(battler, gMoveSelectionCursor[battler]); } } @@ -802,8 +802,7 @@ void HandleInputChooseMove(u32 battler) MoveSelectionCreateCursorAt(gMoveSelectionCursor[battler], 0); MoveSelectionDisplayPpNumber(battler); MoveSelectionDisplayMoveType(battler); - if (gBattleStruct->descriptionSubmenu) - MoveSelectionDisplayMoveDescription(battler); + TryMoveSelectionDisplayMoveDescription(battler); TryChangeZTrigger(battler, gMoveSelectionCursor[battler]); } } @@ -817,8 +816,7 @@ void HandleInputChooseMove(u32 battler) MoveSelectionCreateCursorAt(gMoveSelectionCursor[battler], 0); MoveSelectionDisplayPpNumber(battler); MoveSelectionDisplayMoveType(battler); - if (gBattleStruct->descriptionSubmenu) - MoveSelectionDisplayMoveDescription(battler); + TryMoveSelectionDisplayMoveDescription(battler); TryChangeZTrigger(battler, gMoveSelectionCursor[battler]); } } @@ -833,8 +831,7 @@ void HandleInputChooseMove(u32 battler) MoveSelectionCreateCursorAt(gMoveSelectionCursor[battler], 0); MoveSelectionDisplayPpNumber(battler); MoveSelectionDisplayMoveType(battler); - if (gBattleStruct->descriptionSubmenu) - MoveSelectionDisplayMoveDescription(battler); + TryMoveSelectionDisplayMoveDescription(battler); TryChangeZTrigger(battler, gMoveSelectionCursor[battler]); } } @@ -876,7 +873,7 @@ void HandleInputChooseMove(u32 battler) else if (JOY_NEW(B_MOVE_DESCRIPTION_BUTTON)) { gBattleStruct->descriptionSubmenu = TRUE; - MoveSelectionDisplayMoveDescription(battler); + TryMoveSelectionDisplayMoveDescription(battler); } else if (JOY_NEW(START_BUTTON)) { @@ -1745,6 +1742,15 @@ static void MoveSelectionDisplayMoveType(u32 battler) BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MOVE_TYPE); } +static void TryMoveSelectionDisplayMoveDescription(u32 battler) +{ + if (!B_SHOW_MOVE_DESCRIPTION) + return; + + if (gBattleStruct->descriptionSubmenu) + MoveSelectionDisplayMoveDescription(battler); +} + static void MoveSelectionDisplayMoveDescription(u32 battler) { struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleResources->bufferA[battler][4]); diff --git a/src/battle_interface.c b/src/battle_interface.c index a0075e8bac..d20848f321 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -3042,6 +3042,9 @@ static void DestroyLastUsedBallGfx(struct Sprite *sprite) void TryToAddMoveInfoWindow(void) { + if (!B_SHOW_MOVE_DESCRIPTION) + return; + LoadSpritePalette(&sSpritePalette_AbilityPopUp); if (GetSpriteTileStartByTag(MOVE_INFO_WINDOW_TAG) == 0xFFFF) LoadSpriteSheet(&sSpriteSheet_MoveInfoWindow); @@ -3104,7 +3107,7 @@ static void SpriteCB_LastUsedBall(struct Sprite *sprite) } static void SpriteCB_MoveInfoWin(struct Sprite *sprite) -{ +{ if (sprite->sHide) { if (sprite->x != LAST_BALL_WIN_X_0)