From bef343cefa8834c36c60a31ce9848c276523db07 Mon Sep 17 00:00:00 2001 From: Abaresk Date: Wed, 21 May 2025 16:02:12 -0400 Subject: [PATCH 1/6] Remove berry yield bug fix --- src/berry.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/berry.c b/src/berry.c index 543041e526..c56b91ff03 100644 --- a/src/berry.c +++ b/src/berry.c @@ -1204,15 +1204,9 @@ static u8 GetNumStagesWateredByBerryTreeId(u8 id) return BerryTreeGetNumStagesWatered(GetBerryTreeInfo(id)); } -// Berries can be watered at 4 stages of growth. This function is likely meant -// to divide the berry yield range equally into quartiles. If you watered the -// tree n times, your yield is a random number in the nth quartile. -// -// However, this function actually skews towards higher berry yields, because -// it rounds `extraYield` to the nearest whole number. -// -// See resulting yields: https://gist.github.com/hondew/2a099dbe54aa91414decdbfaa524327d, -// and bug fix: https://gist.github.com/hondew/0f0164e5b9dadfd72d24f30f2c049a0b. +// Berries can be watered at 4 stages of growth. The distribution is largely +// even but slightly prefers middle berry yields, since it uniformly draws from +// a subset of the total yield range. static u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water) { u32 randMin; From 0fc900514b9114d9b77183ec5810501d49cbdae1 Mon Sep 17 00:00:00 2001 From: cawtds <38510667+cawtds@users.noreply.github.com> Date: Mon, 2 Jun 2025 22:51:26 +0200 Subject: [PATCH 2/6] sync list menu functions with firered --- include/list_menu.h | 26 ++++++- src/battle_pyramid_bag.c | 2 +- src/item_menu.c | 2 +- src/list_menu.c | 163 +++++++++++++++++---------------------- src/player_pc.c | 2 +- 5 files changed, 97 insertions(+), 98 deletions(-) diff --git a/include/list_menu.h b/include/list_menu.h index f2f7a2b3dd..ba04ac1cd9 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -27,6 +27,28 @@ enum { SCROLL_ARROW_DOWN }; +// For ListMenuGet/SetTemplateField +enum ListMenuFields +{ + LISTFIELD_MOVECURSORFUNC = 0, + LISTFIELD_MOVECURSORFUNC2, + LISTFIELD_TOTALITEMS, + LISTFIELD_MAXSHOWED, + LISTFIELD_WINDOWID, + LISTFIELD_HEADERX, + LISTFIELD_ITEMX, + LISTFIELD_CURSORX, + LISTFIELD_UPTEXTY, + LISTFIELD_CURSORPAL, + LISTFIELD_FILLVALUE, + LISTFIELD_CURSORSHADOWPAL, + LISTFIELD_LETTERSPACING, + LISTFIELD_ITEMVERTICALPADDING, + LISTFIELD_SCROLLMULTIPLE, + LISTFIELD_FONTID, + LISTFIELD_CURSORKIND, +}; + struct ListMenu; struct ListMenuItem @@ -120,8 +142,8 @@ void ListMenuGetScrollAndRow(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow) u16 ListMenuGetYCoordForPrintingArrowCursor(u8 listTaskId); void ListMenuOverrideSetColors(u8 cursorPal, u8 fillValue, u8 cursorShadowPal); void ListMenuDefaultCursorMoveFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list); -s32 ListMenuGetUnkIndicatorsStructFields(u8 taskId, u8 field); -void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value); +s32 ListMenuGetTemplateField(u8 taskId, u8 field); +void ListMenuSetTemplateField(u8 taskId, u8 field, s32 value); u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate *arrowInfo, u16 *scrollOffset); u8 AddScrollIndicatorArrowPairParameterized(u32 arrowType, s32 commonPos, s32 firstPos, s32 secondPos, s32 fullyDownThreshold, s32 tileTag, s32 palTag, u16 *scrollOffset); void RemoveScrollIndicatorArrowPair(u8 taskId); diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 1084dfacab..f50a2a1e82 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -1312,7 +1312,7 @@ static void Task_BeginItemSwap(u8 taskId) tListPos = gPyramidBagMenuState.scrollPosition + gPyramidBagMenuState.cursorPosition; gPyramidBagMenu->toSwapPos = tListPos; - ListMenuSetUnkIndicatorsStructField(tListTaskId, 0x10, 1); + ListMenuSetTemplateField(tListTaskId, 0x10, 1); CopyItemName(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][tListPos], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_MoveVar1Where); FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0)); diff --git a/src/item_menu.c b/src/item_menu.c index 2c057f4447..5c75ca556c 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1432,7 +1432,7 @@ static void StartItemSwap(u8 taskId) { s16 *data = gTasks[taskId].data; - ListMenuSetUnkIndicatorsStructField(tListTaskId, 16, 1); + ListMenuSetTemplateField(tListTaskId, 16, 1); tListPosition = gBagPosition.scrollPosition[gBagPosition.pocket] + gBagPosition.cursorPosition[gBagPosition.pocket]; gBagMenu->toSwapPos = tListPosition; CopyItemName(BagGetItemIdByPocketPosition(gBagPosition.pocket + 1, tListPosition), gStringVar1); diff --git a/src/list_menu.c b/src/list_menu.c index 91e34cd1b2..8257712a0a 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -17,29 +17,6 @@ // This allows them to have idle animations. Cursors prior to this are simply printed text. #define CURSOR_OBJECT_START CURSOR_RED_OUTLINE -struct UnkIndicatorsStruct -{ - u8 field_0; - u16 *field_4; - u16 field_8; - u16 field_A; - u16 field_C; - u16 field_E; - u8 field_10; - u8 field_11; - u8 field_12; - u8 field_13; - u8 field_14_0:4; - u8 field_14_1:4; - u8 field_15_0:4; - u8 field_15_1:4; - u8 field_16_0:3; - u8 field_16_1:3; - u8 field_16_2:2; - u8 field_17_0:6; - u8 field_17_1:2; -}; - struct ScrollIndicatorPair { u8 field_0; @@ -904,104 +881,104 @@ void ListMenuDefaultCursorMoveFunc(s32 itemIndex, bool8 onInit, struct ListMenu } // unused -s32 ListMenuGetUnkIndicatorsStructFields(u8 taskId, u8 field) +s32 ListMenuGetTemplateField(u8 taskId, u8 field) { - struct UnkIndicatorsStruct *data = (void *) gTasks[taskId].data; + struct ListMenu *data = (void *) gTasks[taskId].data; switch (field) { - case 0: - case 1: - return (s32)(data->field_4); - case 2: - return data->field_C; - case 3: - return data->field_E; - case 4: - return data->field_10; - case 5: - return data->field_11; - case 6: - return data->field_12; - case 7: - return data->field_13; - case 8: - return data->field_14_0; - case 9: - return data->field_14_1; - case 10: - return data->field_15_0; - case 11: - return data->field_15_1; - case 12: - return data->field_16_0; - case 13: - return data->field_16_1; - case 14: - return data->field_16_2; - case 15: - return data->field_17_0; - case 16: - return data->field_17_1; + case LISTFIELD_MOVECURSORFUNC: + case LISTFIELD_MOVECURSORFUNC2: + return (s32)(data->template.moveCursorFunc); + case LISTFIELD_TOTALITEMS: + return data->template.totalItems; + case LISTFIELD_MAXSHOWED: + return data->template.maxShowed; + case LISTFIELD_WINDOWID: + return data->template.windowId; + case LISTFIELD_HEADERX: + return data->template.header_X; + case LISTFIELD_ITEMX: + return data->template.item_X; + case LISTFIELD_CURSORX: + return data->template.cursor_X; + case LISTFIELD_UPTEXTY: + return data->template.upText_Y; + case LISTFIELD_CURSORPAL: + return data->template.cursorPal; + case LISTFIELD_FILLVALUE: + return data->template.fillValue; + case LISTFIELD_CURSORSHADOWPAL: + return data->template.cursorShadowPal; + case LISTFIELD_LETTERSPACING: + return data->template.lettersSpacing; + case LISTFIELD_ITEMVERTICALPADDING: + return data->template.itemVerticalPadding; + case LISTFIELD_SCROLLMULTIPLE: + return data->template.scrollMultiple; + case LISTFIELD_FONTID: + return data->template.fontId; + case LISTFIELD_CURSORKIND: + return data->template.cursorKind; default: return -1; } } -void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value) +void ListMenuSetTemplateField(u8 taskId, u8 field, s32 value) { - struct UnkIndicatorsStruct *data = (void *) &gTasks[taskId].data; + struct ListMenu *data = (void *) &gTasks[taskId].data; switch (field) { - case 0: - case 1: - data->field_4 = (void *)(value); + case LISTFIELD_MOVECURSORFUNC: + case LISTFIELD_MOVECURSORFUNC2: + data->template.moveCursorFunc = (void *)value; break; - case 2: - data->field_C = value; + case LISTFIELD_TOTALITEMS: + data->template.totalItems = value; break; - case 3: - data->field_E = value; + case LISTFIELD_MAXSHOWED: + data->template.maxShowed = value; break; - case 4: - data->field_10 = value; + case LISTFIELD_WINDOWID: + data->template.windowId = value; break; - case 5: - data->field_11 = value; + case LISTFIELD_HEADERX: + data->template.header_X = value; break; - case 6: - data->field_12 = value; + case LISTFIELD_ITEMX: + data->template.item_X = value; break; - case 7: - data->field_13 = value; + case LISTFIELD_CURSORX: + data->template.cursor_X = value; break; - case 8: - data->field_14_0 = value; + case LISTFIELD_UPTEXTY: + data->template.upText_Y = value; break; - case 9: - data->field_14_1 = value; + case LISTFIELD_CURSORPAL: + data->template.cursorPal = value; break; - case 10: - data->field_15_0 = value; + case LISTFIELD_FILLVALUE: + data->template.fillValue = value; break; - case 11: - data->field_15_1 = value; + case LISTFIELD_CURSORSHADOWPAL: + data->template.cursorShadowPal = value; break; - case 12: - data->field_16_0 = value; + case LISTFIELD_LETTERSPACING: + data->template.lettersSpacing = value; break; - case 13: - data->field_16_1 = value; + case LISTFIELD_ITEMVERTICALPADDING: + data->template.itemVerticalPadding = value; break; - case 14: - data->field_16_2 = value; + case LISTFIELD_SCROLLMULTIPLE: + data->template.scrollMultiple = value; break; - case 15: - data->field_17_0 = value; + case LISTFIELD_FONTID: + data->template.fontId = value; break; - case 16: - data->field_17_1 = value; + case LISTFIELD_CURSORKIND: + data->template.cursorKind = value; break; } } diff --git a/src/player_pc.c b/src/player_pc.c index d79f74f94a..f96e13ed78 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -1273,7 +1273,7 @@ static void ItemStorage_ExitItemList(u8 taskId) static void ItemStorage_StartItemSwap(u8 taskId) { s16 *data = gTasks[taskId].data; - ListMenuSetUnkIndicatorsStructField(tListTaskId, 16, 1); + ListMenuSetTemplateField(tListTaskId, 16, 1); sItemStorageMenu->toSwapPos = gPlayerPCItemPageInfo.itemsAbove + gPlayerPCItemPageInfo.cursorPos; ItemStorage_SetSwapArrow(tListTaskId, 0, 0); ItemStorage_UpdateSwapLinePos(sItemStorageMenu->toSwapPos); From b36a78ed47863cc2bbd5604dfcd4c2c76050b3d9 Mon Sep 17 00:00:00 2001 From: cawtds <38510667+cawtds@users.noreply.github.com> Date: Mon, 2 Jun 2025 22:55:41 +0200 Subject: [PATCH 3/6] replace magic numbers with enums --- src/battle_pyramid_bag.c | 2 +- src/item_menu.c | 2 +- src/player_pc.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index f50a2a1e82..e131508928 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -1312,7 +1312,7 @@ static void Task_BeginItemSwap(u8 taskId) tListPos = gPyramidBagMenuState.scrollPosition + gPyramidBagMenuState.cursorPosition; gPyramidBagMenu->toSwapPos = tListPos; - ListMenuSetTemplateField(tListTaskId, 0x10, 1); + ListMenuSetTemplateField(tListTaskId, LISTFIELD_CURSORKIND, CURSOR_INVISIBLE); CopyItemName(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][tListPos], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_MoveVar1Where); FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0)); diff --git a/src/item_menu.c b/src/item_menu.c index 5c75ca556c..a1323a6386 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1432,7 +1432,7 @@ static void StartItemSwap(u8 taskId) { s16 *data = gTasks[taskId].data; - ListMenuSetTemplateField(tListTaskId, 16, 1); + ListMenuSetTemplateField(tListTaskId, LISTFIELD_CURSORKIND, CURSOR_INVISIBLE); tListPosition = gBagPosition.scrollPosition[gBagPosition.pocket] + gBagPosition.cursorPosition[gBagPosition.pocket]; gBagMenu->toSwapPos = tListPosition; CopyItemName(BagGetItemIdByPocketPosition(gBagPosition.pocket + 1, tListPosition), gStringVar1); diff --git a/src/player_pc.c b/src/player_pc.c index f96e13ed78..43239582ce 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -1273,7 +1273,7 @@ static void ItemStorage_ExitItemList(u8 taskId) static void ItemStorage_StartItemSwap(u8 taskId) { s16 *data = gTasks[taskId].data; - ListMenuSetTemplateField(tListTaskId, 16, 1); + ListMenuSetTemplateField(tListTaskId, LISTFIELD_CURSORKIND, CURSOR_INVISIBLE); sItemStorageMenu->toSwapPos = gPlayerPCItemPageInfo.itemsAbove + gPlayerPCItemPageInfo.cursorPos; ItemStorage_SetSwapArrow(tListTaskId, 0, 0); ItemStorage_UpdateSwapLinePos(sItemStorageMenu->toSwapPos); From 96844bd3bbec3d816b8cdc55b5cc58c0264d372f Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Mon, 9 Jun 2025 16:19:25 -0400 Subject: [PATCH 4/6] fix sprite count in RepeatBallOpenParticleAnimation --- src/battle_anim_throw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_anim_throw.c b/src/battle_anim_throw.c index 956020b305..22bd41fd25 100755 --- a/src/battle_anim_throw.c +++ b/src/battle_anim_throw.c @@ -1864,7 +1864,7 @@ static void RepeatBallOpenParticleAnimation(u8 taskId) priority = gTasks[taskId].data[3]; subpriority = gTasks[taskId].data[4]; - for (i = 0; i < POKEBALL_COUNT; i++) + for (i = 0; i < 12; i++) { spriteId = CreateSprite(&sBallParticleSpriteTemplates[ballId], x, y, subpriority); if (spriteId != MAX_SPRITES) From 1cc4321a42e6e33ab16fe28593ad5f9944b2ffbc Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 13 Jun 2025 16:45:24 +0200 Subject: [PATCH 5/6] Fix AnimItemSteal_Step3 and AnimKnockOffOpponentsItem matches --- src/battle_anim_effects_1.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index ee532f4134..c2894894b6 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -3082,20 +3082,18 @@ static void AnimPresent(struct Sprite *sprite) static void AnimKnockOffOpponentsItem(struct Sprite *sprite) { - int zero; sprite->data[0] += ((sprite->data[3] * 128) / sprite->data[4]); - zero = 0; if (sprite->data[0] > 0x7F) { sprite->data[1]++; - sprite->data[0] = zero; + sprite->data[0] = 0; } sprite->y2 = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8); if (moveAlongLinearPath(sprite)) { - sprite->y2 = zero; - sprite->data[0] = zero; + sprite->y2 = 0; + sprite->data[0] = 0; DestroyAnimSprite(sprite); } } @@ -3173,13 +3171,11 @@ static void AnimItemSteal(struct Sprite *sprite) static void AnimItemSteal_Step3(struct Sprite *sprite) { - int zero; sprite->data[0] += ((sprite->data[3] * 128) / sprite->data[4]); - zero = 0; if (sprite->data[0] > 127) { sprite->data[1]++; - sprite->data[0] = zero; + sprite->data[0] = 0; } sprite->y2 = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8); From 75fe3e7da6367994f673550416e1ac282e9efcd9 Mon Sep 17 00:00:00 2001 From: psf <77138753+pkmnsnfrn@users.noreply.github.com> Date: Tue, 17 Jun 2025 07:38:33 -0700 Subject: [PATCH 6/6] Fixed typo in sMoveRelearnerMenuState (#2155) --- src/move_relearner.c | 48 ++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/src/move_relearner.c b/src/move_relearner.c index 19da0cb0fb..31ed7a5d4a 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -179,7 +179,7 @@ static EWRAM_DATA struct { u16 listOffset; u16 listRow; bool8 showContestInfo; -} sMoveRelearnerMenuSate = {0}; +} sMoveRelearnerMenuState = {0}; static const u16 sUI_Pal[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal"); @@ -401,9 +401,9 @@ static void CB2_InitLearnMove(void) InitMoveRelearnerBackgroundLayers(); InitMoveRelearnerWindows(FALSE); - sMoveRelearnerMenuSate.listOffset = 0; - sMoveRelearnerMenuSate.listRow = 0; - sMoveRelearnerMenuSate.showContestInfo = FALSE; + sMoveRelearnerMenuState.listOffset = 0; + sMoveRelearnerMenuState.listRow = 0; + sMoveRelearnerMenuState.showContestInfo = FALSE; CreateLearnableMovesList(); @@ -411,7 +411,7 @@ static void CB2_InitLearnMove(void) LoadSpritePalette(&sMoveRelearnerPalette); CreateUISprites(); - sMoveRelearnerStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveRelearnerMenuSate.listOffset, sMoveRelearnerMenuSate.listRow); + sMoveRelearnerStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveRelearnerMenuState.listOffset, sMoveRelearnerMenuState.listRow); SetBackdropFromColor(RGB_BLACK); SetMainCallback2(CB2_MoveRelearnerMain); } @@ -429,14 +429,14 @@ static void CB2_InitLearnMoveReturnFromSelectMove(void) SetVBlankCallback(VBlankCB_MoveRelearner); InitMoveRelearnerBackgroundLayers(); - InitMoveRelearnerWindows(sMoveRelearnerMenuSate.showContestInfo); + InitMoveRelearnerWindows(sMoveRelearnerMenuState.showContestInfo); CreateLearnableMovesList(); LoadSpriteSheet(&sMoveRelearnerSpriteSheet); LoadSpritePalette(&sMoveRelearnerPalette); CreateUISprites(); - sMoveRelearnerStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveRelearnerMenuSate.listOffset, sMoveRelearnerMenuSate.listRow); + sMoveRelearnerStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveRelearnerMenuState.listOffset, sMoveRelearnerMenuState.listRow); SetBackdropFromColor(RGB_BLACK); SetMainCallback2(CB2_MoveRelearnerMain); } @@ -533,11 +533,11 @@ static void DoMoveRelearnerMain(void) } else if (selection == MENU_B_PRESSED || selection == 1) { - if (sMoveRelearnerMenuSate.showContestInfo == FALSE) + if (sMoveRelearnerMenuState.showContestInfo == FALSE) { sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; } - else if (sMoveRelearnerMenuSate.showContestInfo == TRUE) + else if (sMoveRelearnerMenuState.showContestInfo == TRUE) { sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; } @@ -562,11 +562,11 @@ static void DoMoveRelearnerMain(void) } else if (selection == MENU_B_PRESSED || selection == 1) { - if (sMoveRelearnerMenuSate.showContestInfo == FALSE) + if (sMoveRelearnerMenuState.showContestInfo == FALSE) { sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; } - else if (sMoveRelearnerMenuSate.showContestInfo == TRUE) + else if (sMoveRelearnerMenuState.showContestInfo == TRUE) { sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; } @@ -622,11 +622,11 @@ static void DoMoveRelearnerMain(void) else if (selection == MENU_B_PRESSED || selection == 1) { // What's the point? It gets set to MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT, anyway. - if (sMoveRelearnerMenuSate.showContestInfo == FALSE) + if (sMoveRelearnerMenuState.showContestInfo == FALSE) { sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; } - else if (sMoveRelearnerMenuSate.showContestInfo == TRUE) + else if (sMoveRelearnerMenuState.showContestInfo == TRUE) { sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; } @@ -638,11 +638,11 @@ static void DoMoveRelearnerMain(void) if (!MoveRelearnerRunTextPrinters()) { FillWindowPixelBuffer(RELEARNERWIN_MSG, 0x11); - if (sMoveRelearnerMenuSate.showContestInfo == FALSE) + if (sMoveRelearnerMenuState.showContestInfo == FALSE) { sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; } - else if (sMoveRelearnerMenuSate.showContestInfo == TRUE) + else if (sMoveRelearnerMenuState.showContestInfo == TRUE) { sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; } @@ -685,11 +685,11 @@ static void DoMoveRelearnerMain(void) case MENU_STATE_FADE_FROM_SUMMARY_SCREEN: BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); sMoveRelearnerStruct->state++; - if (sMoveRelearnerMenuSate.showContestInfo == FALSE) + if (sMoveRelearnerMenuState.showContestInfo == FALSE) { HideHeartSpritesAndShowTeachMoveText(TRUE); } - else if (sMoveRelearnerMenuSate.showContestInfo == TRUE) + else if (sMoveRelearnerMenuState.showContestInfo == TRUE) { ShowTeachMoveText(TRUE); } @@ -751,7 +751,7 @@ static void DoMoveRelearnerMain(void) static void FreeMoveRelearnerResources(void) { RemoveScrollArrows(); - DestroyListMenuTask(sMoveRelearnerStruct->moveListMenuTask, &sMoveRelearnerMenuSate.listOffset, &sMoveRelearnerMenuSate.listRow); + DestroyListMenuTask(sMoveRelearnerStruct->moveListMenuTask, &sMoveRelearnerMenuState.listOffset, &sMoveRelearnerMenuState.listRow); FreeAllWindowBuffers(); FREE_AND_SET_NULL(sMoveRelearnerStruct); ResetSpriteData(); @@ -778,7 +778,7 @@ static void HideHeartSpritesAndShowTeachMoveText(bool8 onlyHideSprites) static void HandleInput(bool8 showContest) { s32 itemId = ListMenu_ProcessInput(sMoveRelearnerStruct->moveListMenuTask); - ListMenuGetScrollAndRow(sMoveRelearnerStruct->moveListMenuTask, &sMoveRelearnerMenuSate.listOffset, &sMoveRelearnerMenuSate.listRow); + ListMenuGetScrollAndRow(sMoveRelearnerStruct->moveListMenuTask, &sMoveRelearnerMenuState.listOffset, &sMoveRelearnerMenuState.listRow); switch (itemId) { @@ -792,13 +792,13 @@ static void HandleInput(bool8 showContest) { PutWindowTilemap(RELEARNERWIN_DESC_CONTEST); sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; - sMoveRelearnerMenuSate.showContestInfo = TRUE; + sMoveRelearnerMenuState.showContestInfo = TRUE; } else { PutWindowTilemap(RELEARNERWIN_DESC_BATTLE); sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; - sMoveRelearnerMenuSate.showContestInfo = FALSE; + sMoveRelearnerMenuState.showContestInfo = FALSE; } ScheduleBgCopyTilemapToVram(1); @@ -824,7 +824,7 @@ static void HandleInput(bool8 showContest) static s32 GetCurrentSelectedMove(void) { - return sMoveRelearnerStruct->menuItems[sMoveRelearnerMenuSate.listRow + sMoveRelearnerMenuSate.listOffset].id; + return sMoveRelearnerStruct->menuItems[sMoveRelearnerMenuState.listRow + sMoveRelearnerMenuState.listOffset].id; } // Theory: This used to make the heart sprites visible again (i.e. @@ -876,7 +876,7 @@ static void AddScrollArrows(void) { gTempScrollArrowTemplate = sMoveListScrollArrowsTemplate; gTempScrollArrowTemplate.fullyDownThreshold = sMoveRelearnerStruct->numMenuChoices - sMoveRelearnerStruct->numToShowAtOnce; - sMoveRelearnerStruct->moveListScrollArrowTask = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &sMoveRelearnerMenuSate.listOffset); + sMoveRelearnerStruct->moveListScrollArrowTask = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &sMoveRelearnerMenuState.listOffset); } } @@ -921,7 +921,7 @@ void MoveRelearnerShowHideHearts(s32 move) u16 numHearts; u16 i; - if (!sMoveRelearnerMenuSate.showContestInfo || move == LIST_CANCEL) + if (!sMoveRelearnerMenuState.showContestInfo || move == LIST_CANCEL) { for (i = 0; i < 16; i++) gSprites[sMoveRelearnerStruct->heartSpriteIds[i]].invisible = TRUE;