From 372f7e47dfbea8e5839ad2f621bc32883433886e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 4 Jul 2024 23:29:14 -0400 Subject: [PATCH] document party_menu_items.c --- include/party_menu.h | 18 +-- include/party_menu_items.h | 10 +- replace.sh | 12 ++ src/field_use_item.c | 2 +- src/party_context_menu.c | 8 +- src/party_menu.c | 57 +++---- src/party_menu_items.c | 288 ++++++++++++++++++------------------ src/party_menu_list_items.c | 44 +++--- src/start_menu.c | 18 +-- 9 files changed, 235 insertions(+), 222 deletions(-) diff --git a/include/party_menu.h b/include/party_menu.h index 85281469a..4506b2fdc 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -41,7 +41,7 @@ typedef enum PartyMenuState { PARTY_MENU_STATE_HANDLE_CONTEXT_MENU_INPUT, PARTY_MENU_STATE_3, PARTY_MENU_STATE_4, - PARTY_MENU_STATE_5, + PARTY_MENU_STATE_ITEM_USE_CB, PARTY_MENU_STATE_SELECT_MOVE, PARTY_MENU_STATE_SACRED_ASH, PARTY_MENU_STATE_8, @@ -310,8 +310,8 @@ typedef struct PartyMenuArgs { u8 partySlot; u8 selectedAction; u16 itemId; - u16 unk_2A; - u8 unk_2C; + u16 moveId; + u8 selectedMoveIdx; u8 unk_2D; u8 contestStat; u8 contestLevel; @@ -319,9 +319,9 @@ typedef struct PartyMenuArgs { u8 unk_36_0:4; u8 maxMonsToSelect:4; u8 unk_37; - int unk_38; + int levelUpMoveSearchState; u16 species; - int unk_40; + int evoMethod; } PartyMenuArgs; typedef struct IconFormChangeData { @@ -414,7 +414,7 @@ struct PartyMenuStruct { PartyMenuMonsDrawState monsDrawState[PARTY_SIZE]; //0x828 const UnkStruct_02020654 *unk_948; UnkPartyMenuSub_94C unk_94C; - int (*unk_C54)(PartyMenuStruct *); + int (*itemUseCallback)(PartyMenuStruct *); int (*yesCallback)(PartyMenuStruct *); //0xc58 int (*noCallback)(PartyMenuStruct *); //0xc5c u8 unk_C60; @@ -426,8 +426,8 @@ struct PartyMenuStruct { u8 textPrinterId; u8 partyMonIndex; // 0xc65 u8 unk_C66; - u8 unk_C67; - u16 unk_C68[6]; + u8 levelUpLearnMovesLoopState; + u16 levelUpStatsTmp[6]; Pokedex *pokedex; // 0xc74 int topScreenPanelYPos; BOOL topScreenPanelShow; @@ -474,7 +474,7 @@ u32 sub_0207CAA4(void); u32 sub_0207CAA8(void); void sub_0207CAAC(HeapID heapId, u16 *a1, u16 *a2, u16 *a3); void PartyMenu_FormChangeScene_End(PartyMenuStruct *partyMenu); -void sub_0207CB20(PartyMenuStruct *partyMenu); +void PartyMenu_DeleteContextMenuAndList(PartyMenuStruct *partyMenu); void sub_0207CB3C(PartyMenuStruct *partyMenu, BOOL a1); void PartyMenu_FormChangeScene_Begin(PartyMenuStruct *partyMenu); diff --git a/include/party_menu_items.h b/include/party_menu_items.h index b754243c2..d4116583b 100644 --- a/include/party_menu_items.h +++ b/include/party_menu_items.h @@ -7,17 +7,17 @@ #define LEARN_MOVE_CHECK_FULL 0xFE #define LEARN_MOVE_CHECK_INCOMPAT 0xFF -void sub_020812E8(PartyMenuStruct *partyMenu); +void PartyMenu_SetItemUseFuncFromBagSelection(PartyMenuStruct *partyMenu); int sub_02081378(PartyMenuStruct *partyMenu); BOOL sub_020817C4(u16 itemId); int PartyMenu_Subtask_SacredAsh(PartyMenuStruct *partyMenu); -int sub_02081ED0(PartyMenuStruct *partyMenu); -u8 sub_020820DC(PartyMenuStruct *partyMenu, Pokemon *mon); +int PartyMenu_ItemUseFunc_LevelUpDoLearnMove(PartyMenuStruct *partyMenu); +u8 PartyMenu_CheckCanLearnTMHMMove(PartyMenuStruct *partyMenu, Pokemon *mon); int sub_02082134(PartyMenuStruct *partyMenu); int sub_020822CC(PartyMenuStruct *partyMenu); int sub_02082370(PartyMenuStruct *partyMenu); int PartyMenu_Subtask_SelectMove(PartyMenuStruct *partyMenu); -void sub_02082654(PartyMenuStruct *partyMenu, BOOL a1); -void sub_02082868(PartyMenuStruct *partyMenu); +void PartyMenu_SelectMoveForPpRestoreOrPpUp(PartyMenuStruct *partyMenu, BOOL isPpRestore); +void PartyMenu_HandleAttachMailFromMailbox(PartyMenuStruct *partyMenu); #endif //GUARD_POKEHEARTGOLD_PARTY_MENU_MOVES_H diff --git a/replace.sh b/replace.sh index 8dc9f92fa..ce282df87 100755 --- a/replace.sh +++ b/replace.sh @@ -6,6 +6,18 @@ if [ "$1" = "" -o "$2" = "" ]; then exit 1 fi +git grep -w "$1" src asm include >/dev/null +if [ "$?" -ne 0 ]; then + echo "error: query symbol not found" + exit 1 +fi + +git grep -w "$2" src asm include >/dev/null +if [ "$?" -eq 0 ]; then + echo "error: replacement symbol already exists" + exit 1 +fi + set -e if [ "$(uname -s)" == "Darwin" ]; then diff --git a/src/field_use_item.c b/src/field_use_item.c index 87e8f50e6..657c2fe07 100644 --- a/src/field_use_item.c +++ b/src/field_use_item.c @@ -355,7 +355,7 @@ static void ItemMenuUseFunc_TMHM(struct ItemMenuUseData *data, const struct Item usedat->fieldSystem = fieldSystem; usedat->itemId = data->itemId; usedat->partySlot = data->unk6; - usedat->unk_2A = TMHMGetMove(data->itemId); + usedat->moveId = TMHMGetMove(data->itemId); usedat->unk_20 = &fieldSystem->unk_10C; FieldSystem_LaunchApplication(fieldSystem, &gOverlayTemplate_PartyMenu, usedat); env->atexit_TaskEnv = usedat; diff --git a/src/party_context_menu.c b/src/party_context_menu.c index e811497e6..0cc9ff30c 100644 --- a/src/party_context_menu.c +++ b/src/party_context_menu.c @@ -652,7 +652,7 @@ void PartyMenu_DrawPartyMonsList_UseTMHM(PartyMenuStruct *partyMenu, u8 partySlo PartyMenu_PrintTMHMCompatString(partyMenu, partySlot, 1); } else { PartyMenu_PrintMonLevelOnWindow(partyMenu, partySlot); - u8 x = sub_020820DC(partyMenu, Party_GetMonByIndex(partyMenu->args->party, partySlot)); + u8 x = PartyMenu_CheckCanLearnTMHMMove(partyMenu, Party_GetMonByIndex(partyMenu->args->party, partySlot)); if (x == LEARN_MOVE_CHECK_INCOMPAT) { PartyMenu_PrintTMHMCompatString(partyMenu, partySlot, 1); } else if (x == LEARN_MOVE_CHECK_KNOWN) { @@ -908,12 +908,12 @@ void PartyMenu_LevelUpPrintStatsChange(PartyMenuStruct *partyMenu) { AddTextPrinterParameterized(&partyMenu->levelUpStatsWindow[0], 0, str_plusSign, 80, i * 16, TEXT_SPEED_NOTRANSFER, NULL); str_formatInt = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00176); - BufferIntegerAsString(partyMenu->msgFormat, 0, stats[i] - partyMenu->unk_C68[i], 2, PRINTING_MODE_LEFT_ALIGN, TRUE); + BufferIntegerAsString(partyMenu->msgFormat, 0, stats[i] - partyMenu->levelUpStatsTmp[i], 2, PRINTING_MODE_LEFT_ALIGN, TRUE); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, str_formatInt); String_Delete(str_formatInt); AddTextPrinterParameterized(&partyMenu->levelUpStatsWindow[0], 0, partyMenu->formattedStrBuf, 94, i * 16, TEXT_SPEED_NOTRANSFER, NULL); - partyMenu->unk_C68[i] = stats[i]; + partyMenu->levelUpStatsTmp[i] = stats[i]; } String_Delete(str_plusSign); ScheduleWindowCopyToVram(&partyMenu->levelUpStatsWindow[0]); @@ -926,7 +926,7 @@ void sub_0207DF98(PartyMenuStruct *partyMenu) { FillWindowPixelRect(&partyMenu->levelUpStatsWindow[0], 15, 80, 0, 32, 112); spC = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00176); for (i = 0; i < NUM_STATS; ++i) { - BufferIntegerAsString(partyMenu->msgFormat, 0, partyMenu->unk_C68[i], 3, PRINTING_MODE_LEFT_ALIGN, TRUE); + BufferIntegerAsString(partyMenu->msgFormat, 0, partyMenu->levelUpStatsTmp[i], 3, PRINTING_MODE_LEFT_ALIGN, TRUE); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, spC); AddTextPrinterParameterized(&partyMenu->levelUpStatsWindow[0], 0, partyMenu->formattedStrBuf, 104 - FontID_String_GetWidth(0, partyMenu->formattedStrBuf, 0), i * 16, TEXT_SPEED_NOTRANSFER, NULL); } diff --git a/src/party_menu.c b/src/party_menu.c index 8bac472a9..7f5bca09e 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -302,8 +302,8 @@ static BOOL PartyMenuApp_Main(OVY_MANAGER *manager, int *pState) { case PARTY_MENU_STATE_4: *pState = sub_020793C0(partyMenu); break; - case PARTY_MENU_STATE_5: - *pState = partyMenu->unk_C54(partyMenu); + case PARTY_MENU_STATE_ITEM_USE_CB: + *pState = partyMenu->itemUseCallback(partyMenu); break; case PARTY_MENU_STATE_SELECT_MOVE: *pState = PartyMenu_Subtask_SelectMove(partyMenu); @@ -441,7 +441,8 @@ static int PartyMenu_Subtask_Init(PartyMenuStruct *partyMenu) { if (IsPaletteFadeFinished() == TRUE) { if (partyMenu->args->context == PARTY_MENU_CONTEXT_USE_ITEM || partyMenu->args->context == PARTY_MENU_CONTEXT_EVO_STONE) { if (sub_020817C4(partyMenu->args->itemId) == TRUE) { - partyMenu->afterTextPrinterState = PARTY_MENU_STATE_INIT; + // this field is overloaded + partyMenu->afterTextPrinterState = 0; return PARTY_MENU_STATE_SACRED_ASH; } else { return PARTY_MENU_STATE_4; @@ -451,7 +452,7 @@ static int PartyMenu_Subtask_Init(PartyMenuStruct *partyMenu) { } else if (partyMenu->args->context == PARTY_MENU_CONTEXT_7) { return sub_020822CC(partyMenu); } else if (partyMenu->args->context == PARTY_MENU_CONTEXT_8) { - return sub_02081ED0(partyMenu); + return PartyMenu_ItemUseFunc_LevelUpDoLearnMove(partyMenu); } else if (partyMenu->args->context == PARTY_MENU_CONTEXT_11 || partyMenu->args->context == PARTY_MENU_CONTEXT_12) { return PARTY_MENU_STATE_14; } else if (partyMenu->args->context == PARTY_MENU_CONTEXT_9) { @@ -475,7 +476,7 @@ static int PartyMenu_Subtask_MainNormal(PartyMenuStruct *partyMenu) { partyMenu->args->selectedAction = PARTY_MENU_ACTION_RETURN_0; return PARTY_MENU_STATE_BEGIN_EXIT; case PARTY_MENU_CONTEXT_14: - sub_02082868(partyMenu); + PartyMenu_HandleAttachMailFromMailbox(partyMenu); return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; case PARTY_MENU_CONTEXT_19: return sub_0207CA30(partyMenu); @@ -534,7 +535,7 @@ static int PartyMenu_Subtask_HandleSubcontextMenuInput(PartyMenuStruct *partyMen sub_0200E5D4(&partyMenu->windows[PARTY_MENU_WINDOW_ID_35], TRUE); ClearWindowTilemapAndScheduleTransfer(&partyMenu->windows[PARTY_MENU_WINDOW_ID_35]); PartyMenu_SetTopScreenSelectionPanelVisibility(partyMenu, FALSE); - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); PartyMenu_PrintMessageOnWindow32(partyMenu, msg_0300_00029, TRUE); thunk_Sprite_SetPalIndex(partyMenu->sprites[PARTY_MENU_SPRITE_ID_CURSOR], 0); @@ -2146,7 +2147,7 @@ static BOOL PartyMenu_Subtask_HandleContextMenuInput(PartyMenuStruct *partyMenu, case LIST_CANCEL: PartyMenu_SetTopScreenSelectionPanelVisibility(partyMenu, FALSE); ClearFrameAndWindow2(&partyMenu->windows[PARTY_MENU_WINDOW_ID_33], TRUE); - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); if (partyMenu->args->context == PARTY_MENU_CONTEXT_2 || partyMenu->args->context == PARTY_MENU_CONTEXT_17 || partyMenu->args->context == PARTY_MENU_CONTEXT_22 || partyMenu->args->context == PARTY_MENU_CONTEXT_23) { PartyMenu_PrintMessageOnWindow32(partyMenu, msg_0300_00035, TRUE); @@ -2181,15 +2182,15 @@ static int PartyMenu_SoftboiledTryTargetCheck(PartyMenuStruct *partyMenu) { case 0: PlaySE(SEQ_SE_DP_KAIFUKU); thunk_Sprite_SetPalIndex(partyMenu->sprites[PARTY_MENU_SPRITE_ID_CURSOR], 1); - if (partyMenu->monsDrawState[partyMenu->partyMonIndex].maxHp - partyMenu->monsDrawState[partyMenu->partyMonIndex].hp < partyMenu->unk_C68[0]) { - partyMenu->unk_C68[0] = partyMenu->monsDrawState[partyMenu->partyMonIndex].maxHp - partyMenu->monsDrawState[partyMenu->partyMonIndex].hp; + if (partyMenu->monsDrawState[partyMenu->partyMonIndex].maxHp - partyMenu->monsDrawState[partyMenu->partyMonIndex].hp < partyMenu->levelUpStatsTmp[0]) { + partyMenu->levelUpStatsTmp[0] = partyMenu->monsDrawState[partyMenu->partyMonIndex].maxHp - partyMenu->monsDrawState[partyMenu->partyMonIndex].hp; } - partyMenu->unk_C68[1] = 2; - partyMenu->unk_C68[2] = 0; + partyMenu->levelUpStatsTmp[1] = 2; + partyMenu->levelUpStatsTmp[2] = 0; return PARTY_MENU_STATE_SOFTBOILED; case 1: PlaySE(SEQ_SE_DP_SELECT); - partyMenu->unk_C68[1] = 1; + partyMenu->levelUpStatsTmp[1] = 1; return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; case 2: PlaySE(SEQ_SE_DP_CUSTOM06); @@ -2213,7 +2214,7 @@ static int PartyMenu_Subtask_Softboiled(PartyMenuStruct *partyMenu) { } } - switch (partyMenu->unk_C68[1]) { + switch (partyMenu->levelUpStatsTmp[1]) { case 0: { u32 selection = PartyMenu_GetTouchButtonInput(partyMenu); if (selection != -1) { @@ -2259,13 +2260,13 @@ static int PartyMenu_Subtask_Softboiled(PartyMenuStruct *partyMenu) { ClearFrameAndWindow2(&partyMenu->windows[PARTY_MENU_WINDOW_ID_34], TRUE); thunk_Sprite_SetPalIndex(partyMenu->sprites[PARTY_MENU_SPRITE_ID_CURSOR], 0); PartyMenu_PrintMessageOnWindow32(partyMenu, msg_0300_00037, TRUE); - partyMenu->unk_C68[1] = 0; + partyMenu->levelUpStatsTmp[1] = 0; break; case 2: if (PartyMenu_SoftboiledHPTransferStep(partyMenu, partyMenu->softboiledDonorSlot, -1) == TRUE) { PlaySE(SEQ_SE_DP_KAIFUKU); - partyMenu->unk_C68[1] = 3; - partyMenu->unk_C68[2] = 0; + partyMenu->levelUpStatsTmp[1] = 3; + partyMenu->levelUpStatsTmp[2] = 0; } break; case 3: @@ -2273,11 +2274,11 @@ static int PartyMenu_Subtask_Softboiled(PartyMenuStruct *partyMenu) { Pokemon *pokemon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); String *string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00065); BufferBoxMonNickname(partyMenu->msgFormat, 0, Mon_GetBoxMon(pokemon)); - BufferIntegerAsString(partyMenu->msgFormat, 1, partyMenu->unk_C68[2], 3, PRINTING_MODE_LEFT_ALIGN, TRUE); + BufferIntegerAsString(partyMenu->msgFormat, 1, partyMenu->levelUpStatsTmp[2], 3, PRINTING_MODE_LEFT_ALIGN, TRUE); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); PartyMenu_PrintMessageOnWindow34(partyMenu, -1, TRUE); - partyMenu->unk_C68[1] = 4; + partyMenu->levelUpStatsTmp[1] = 4; partyMenu->afterTextPrinterState = PARTY_MENU_STATE_SOFTBOILED; return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; } @@ -2299,7 +2300,7 @@ static u8 PartyMenu_SoftboiledTargetCheck(PartyMenuStruct *partyMenu) { if (partyMenu->partyMonIndex == partyMenu->softboiledDonorSlot || partyMenu->monsDrawState[partyMenu->partyMonIndex].hp == 0 || partyMenu->monsDrawState[partyMenu->partyMonIndex].hp == partyMenu->monsDrawState[partyMenu->partyMonIndex].maxHp) { thunk_Sprite_SetPalIndex(partyMenu->sprites[PARTY_MENU_SPRITE_ID_CURSOR], 1); PartyMenu_PrintMessageOnWindow34(partyMenu, msg_0300_00120, TRUE); - partyMenu->unk_C68[1] = 1; + partyMenu->levelUpStatsTmp[1] = 1; partyMenu->afterTextPrinterState = PARTY_MENU_STATE_SOFTBOILED; return 1; } @@ -2308,12 +2309,12 @@ static u8 PartyMenu_SoftboiledTargetCheck(PartyMenuStruct *partyMenu) { static BOOL PartyMenu_SoftboiledHPTransferStep(PartyMenuStruct *partyMenu, u8 partySlot, s8 delta) { partyMenu->monsDrawState[partySlot].hp += delta; - ++partyMenu->unk_C68[2]; + ++partyMenu->levelUpStatsTmp[2]; PartyMenu_ClearMonHpTextWindow(partyMenu, partySlot); FillWindowPixelBuffer(&partyMenu->windows[partySlot * 5 + 3], 0); PartyMenu_PrintMonCurHpOnWindow(partyMenu, partySlot); PartyMenu_DrawMonHpBarOnWindow(partyMenu, partySlot); - if (partyMenu->unk_C68[0] == partyMenu->unk_C68[2] || partyMenu->monsDrawState[partySlot].hp == partyMenu->monsDrawState[partySlot].maxHp) { + if (partyMenu->levelUpStatsTmp[0] == partyMenu->levelUpStatsTmp[2] || partyMenu->monsDrawState[partySlot].hp == partyMenu->monsDrawState[partySlot].maxHp) { Pokemon *mon = Party_GetMonByIndex(partyMenu->args->party, partySlot); u32 hp = partyMenu->monsDrawState[partySlot].hp; SetMonData(mon, MON_DATA_HP, &hp); @@ -2409,12 +2410,12 @@ static int sub_0207C288(PartyMenuStruct *partyMenu) { if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_PP_UP) || GetItemAttr_PreloadedItemData(itemData, ITEMATTR_PP_MAX)) { FreeToHeap(itemData); - sub_02082654(partyMenu, 0); + PartyMenu_SelectMoveForPpRestoreOrPpUp(partyMenu, 0); return PARTY_MENU_STATE_SELECT_MOVE; } if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_PP_RESTORE) && !GetItemAttr_PreloadedItemData(itemData, ITEMATTR_PP_RESTORE_ALL)) { FreeToHeap(itemData); - sub_02082654(partyMenu, 1); + PartyMenu_SelectMoveForPpRestoreOrPpUp(partyMenu, 1); return PARTY_MENU_STATE_SELECT_MOVE; } @@ -2422,20 +2423,20 @@ static int sub_0207C288(PartyMenuStruct *partyMenu) { Bag_TakeItem(partyMenu->args->bag, partyMenu->args->itemId, 1, HEAP_ID_PARTY_MENU); if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_EVOLVE)) { Pokemon *mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); - partyMenu->args->species = GetMonEvolution(NULL, mon, EVOCTX_ITEM_USE, partyMenu->args->itemId, &partyMenu->args->unk_40); + partyMenu->args->species = GetMonEvolution(NULL, mon, EVOCTX_ITEM_USE, partyMenu->args->itemId, &partyMenu->args->evoMethod); partyMenu->args->selectedAction = PARTY_MENU_ACTION_RETURN_EVO_ITEM_USE; FreeToHeap(itemData); return PARTY_MENU_STATE_BEGIN_EXIT; } else { - sub_020812E8(partyMenu); + PartyMenu_SetItemUseFuncFromBagSelection(partyMenu); } } else { PartyMenu_PrintMessageOnWindow34(partyMenu, msg_0300_00102, TRUE); partyMenu->partyMonIndex = PARTY_MON_SELECTION_CONFIRM; - partyMenu->unk_C54 = sub_02081378; + partyMenu->itemUseCallback = sub_02081378; } FreeToHeap(itemData); - return PARTY_MENU_STATE_5; + return PARTY_MENU_STATE_ITEM_USE_CB; } static u8 sub_0207C3D0(PartyMenuStruct *partyMenu) { @@ -2701,7 +2702,7 @@ void sub_0207CAAC(HeapID heapId, u16 *a1, u16 *a2, u16 *a3) { FreeToHeap(pNscrFile); } -void sub_0207CB20(PartyMenuStruct *partyMenu) { +void PartyMenu_DeleteContextMenuAndList(PartyMenuStruct *partyMenu) { PartyMenu_CloseContextMenu(partyMenu, partyMenu->contextMenuCursor); ListMenuItems_Delete(partyMenu->listMenuItems); } diff --git a/src/party_menu_items.c b/src/party_menu_items.c index 2d24118f2..17d00f02c 100644 --- a/src/party_menu_items.c +++ b/src/party_menu_items.c @@ -48,28 +48,28 @@ typedef enum PartyMenuItemType { PARTY_MENU_ITEM_TYPE_OTHER, } PartyMenuItemType; -PartyMenuItemType sub_02080BB4(u16 itemId); -void sub_02080E9C(PartyMenuStruct *partyMenu, u16 itemId, int param); -int sub_020813A4(PartyMenuStruct *partyMenu); -int sub_02081444(PartyMenuStruct *partyMenu); -int sub_020815E4(PartyMenuStruct *partyMenu); -int sub_02081720(PartyMenuStruct *partyMenu); -u8 sub_020817DC(PartyMenuStruct *partyMenu, u8 a1); -int sub_02081A74(PartyMenuStruct *partyMenu); -int sub_02081C50(PartyMenuStruct *partyMenu); -int sub_02081F8C(PartyMenuStruct *partyMenu); -int sub_02081FE0(PartyMenuStruct *partyMenu); -int sub_02082038(PartyMenuStruct *partyMenu); -int sub_02082084(PartyMenuStruct *partyMenu); -int sub_020823F4(PartyMenuStruct *partyMenu); -int sub_02082448(PartyMenuStruct *partyMenu); -int sub_020824A0(PartyMenuStruct *partyMenu); -int sub_020824F4(PartyMenuStruct *partyMenu); -void sub_0208254C(PartyMenuStruct *partyMenu, Pokemon *mon, int moveIdx); -u8 sub_020825D8(PartyMenuStruct *partyMenu, int moveIdx); -u16 sub_020828EC(PartyMenuStruct *partyMenu); - -PartyMenuItemType sub_02080BB4(u16 itemId) { +static PartyMenuItemType ItemId_GetPartyUseType(u16 itemId); +static void PartyMenu_GetItemUseMessage(PartyMenuStruct *partyMenu, u16 itemId, int param); +static int PartyMenu_ItemUseFunc_StatusHealEtc(PartyMenuStruct *partyMenu); +static int PartyMenu_ItemUseFunc_EVDown(PartyMenuStruct *partyMenu); +static int PartyMenu_ItemUseFunc_HPRestore(PartyMenuStruct *partyMenu); +static int PartyMenu_ItemUseFunc_HPRestoreAnimLoop(PartyMenuStruct *partyMenu); +static u8 sub_020817DC(PartyMenuStruct *partyMenu, u8 a1); +static int PartyMenu_ItemUseFunc_LevelUp(PartyMenuStruct *partyMenu); +static int PartyMenu_ItemUseFunc_LevelUpLearnMovesLoop(PartyMenuStruct *partyMenu); +static int PartyMenu_ItemUseFunc_LevelUpPromptForgetMove(PartyMenuStruct *partyMenu); +static int PartyMenu_ItemUseFunc_LevelUpAskStopTryingToLearn(PartyMenuStruct *partyMenu); +static int PartyMenu_ItemUseFunc_LevelUpDidNotLearnMove(PartyMenuStruct *partyMenu); +static int PartyMenu_ItemUseFunc_LevelUpAskAgainToForget(PartyMenuStruct *partyMenu); +static int PartyMenu_ItemUseFunc_TMHMPromptForgetMove(PartyMenuStruct *partyMenu); +static int PartyMenu_ItemUseFunc_TMHMAskStopTryingToLearn(PartyMenuStruct *partyMenu); +static int PartyMenu_ItemUseFunc_TMHMDidNotLearnMove(PartyMenuStruct *partyMenu); +static int PartyMenu_ItemUseFunc_TMHMAskAgainToForget(PartyMenuStruct *partyMenu); +static void PartyMenu_LearnMoveToSlot(PartyMenuStruct *partyMenu, Pokemon *mon, int moveIdx); +static u8 PartyMenu_AddMoveNameToList(PartyMenuStruct *partyMenu, int moveIdx); +static u16 PartyMenu_GetCurrentMapSec(PartyMenuStruct *partyMenu); + +static PartyMenuItemType ItemId_GetPartyUseType(u16 itemId) { int param; ItemData *itemData = LoadItemDataOrGfx(itemId, ITEMNARC_PARAM, HEAP_ID_PARTY_MENU); if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_PARTY_USE) != TRUE) { @@ -218,11 +218,11 @@ PartyMenuItemType sub_02080BB4(u16 itemId) { return PARTY_MENU_ITEM_TYPE_OTHER; } -void sub_02080E9C(PartyMenuStruct *partyMenu, u16 itemId, int param) { +static void PartyMenu_GetItemUseMessage(PartyMenuStruct *partyMenu, u16 itemId, int param) { String *string; BufferBoxMonNickname(partyMenu->msgFormat, 0, Mon_GetBoxMon(Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex))); - switch (sub_02080BB4(itemId)) { + switch (ItemId_GetPartyUseType(itemId)) { case PARTY_MENU_ITEM_TYPE_PSN_HEAL: string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00066); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); @@ -351,15 +351,15 @@ void sub_02080E9C(PartyMenuStruct *partyMenu, u16 itemId, int param) { } } -void sub_020812E8(PartyMenuStruct *partyMenu) { - switch (sub_02080BB4(partyMenu->args->itemId)) { +void PartyMenu_SetItemUseFuncFromBagSelection(PartyMenuStruct *partyMenu) { + switch (ItemId_GetPartyUseType(partyMenu->args->itemId)) { case PARTY_MENU_ITEM_TYPE_BATTLE_STAT_STAGES: case PARTY_MENU_ITEM_TYPE_OTHER: break; case PARTY_MENU_ITEM_TYPE_REVIVE_ALL: break; case PARTY_MENU_ITEM_TYPE_LEVEL_UP: - partyMenu->unk_C54 = sub_02081A74; + partyMenu->itemUseCallback = PartyMenu_ItemUseFunc_LevelUp; break; case PARTY_MENU_ITEM_TYPE_SLP_HEAL: case PARTY_MENU_ITEM_TYPE_PSN_HEAL: @@ -378,7 +378,7 @@ void sub_020812E8(PartyMenuStruct *partyMenu) { case PARTY_MENU_ITEM_TYPE_PP_UP: case PARTY_MENU_ITEM_TYPE_PP_MAX: case PARTY_MENU_ITEM_TYPE_PP_RESTORE: - partyMenu->unk_C54 = sub_020813A4; + partyMenu->itemUseCallback = PartyMenu_ItemUseFunc_StatusHealEtc; break; case PARTY_MENU_ITEM_TYPE_HP_EV_DOWN: case PARTY_MENU_ITEM_TYPE_ATK_EV_DOWN: @@ -386,37 +386,37 @@ void sub_020812E8(PartyMenuStruct *partyMenu) { case PARTY_MENU_ITEM_TYPE_SPEED_EV_DOWN: case PARTY_MENU_ITEM_TYPE_SPATK_EV_DOWN: case PARTY_MENU_ITEM_TYPE_SPDEF_EV_DOWN: - partyMenu->unk_C54 = sub_02081444; + partyMenu->itemUseCallback = PartyMenu_ItemUseFunc_EVDown; break; case PARTY_MENU_ITEM_TYPE_HP_RESTORE: - partyMenu->unk_C54 = sub_020815E4; + partyMenu->itemUseCallback = PartyMenu_ItemUseFunc_HPRestore; break; } } int sub_02081378(PartyMenuStruct *partyMenu) { if (TextPrinterCheckActive(partyMenu->textPrinterId)) { - return PARTY_MENU_STATE_5; + return PARTY_MENU_STATE_ITEM_USE_CB; } else { partyMenu->args->selectedAction = PARTY_MENU_ACTION_RETURN_0; return PARTY_MENU_STATE_BEGIN_EXIT; } } -int sub_020813A4(PartyMenuStruct *partyMenu) { - UseItemOnMonInParty(partyMenu->args->party, partyMenu->args->itemId, partyMenu->partyMonIndex, 0, sub_020828EC(partyMenu), HEAP_ID_PARTY_MENU); +static int PartyMenu_ItemUseFunc_StatusHealEtc(PartyMenuStruct *partyMenu) { + UseItemOnMonInParty(partyMenu->args->party, partyMenu->args->itemId, partyMenu->partyMonIndex, 0, PartyMenu_GetCurrentMapSec(partyMenu), HEAP_ID_PARTY_MENU); sub_02079E38(partyMenu, partyMenu->partyMonIndex); sub_0207D5DC(partyMenu, partyMenu->partyMonIndex); PartyMenu_CommitPartyMonPanelWindowsToVram_InVBlank(partyMenu, partyMenu->partyMonIndex); PartyMenu_DrawMonStatusIcon(partyMenu, partyMenu->partyMonIndex, partyMenu->monsDrawState[partyMenu->partyMonIndex].status); - sub_02080E9C(partyMenu, partyMenu->args->itemId, 0); + PartyMenu_GetItemUseMessage(partyMenu, partyMenu->args->itemId, 0); PartyMenu_PrintMessageOnWindow34(partyMenu, -1, TRUE); PlaySE(SEQ_SE_DP_KAIFUKU); - partyMenu->unk_C54 = sub_02081378; - return PARTY_MENU_STATE_5; + partyMenu->itemUseCallback = sub_02081378; + return PARTY_MENU_STATE_ITEM_USE_CB; } -int sub_02081444(PartyMenuStruct *partyMenu) { +static int PartyMenu_ItemUseFunc_EVDown(PartyMenuStruct *partyMenu) { Pokemon *mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); u8 hpEv = GetMonData(mon, MON_DATA_HP_EV, NULL); u8 atkEv = GetMonData(mon, MON_DATA_ATK_EV, NULL); @@ -425,7 +425,7 @@ int sub_02081444(PartyMenuStruct *partyMenu) { u8 spAtkEv = GetMonData(mon, MON_DATA_SPATK_EV, NULL); u8 spDefEv = GetMonData(mon, MON_DATA_SPDEF_EV, NULL); u8 friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, NULL); - UseItemOnMonInParty(partyMenu->args->party, partyMenu->args->itemId, partyMenu->partyMonIndex, 0, sub_020828EC(partyMenu), HEAP_ID_PARTY_MENU); + UseItemOnMonInParty(partyMenu->args->party, partyMenu->args->itemId, partyMenu->partyMonIndex, 0, PartyMenu_GetCurrentMapSec(partyMenu), HEAP_ID_PARTY_MENU); sub_02079E38(partyMenu, partyMenu->partyMonIndex); sub_0207D5DC(partyMenu, partyMenu->partyMonIndex); PartyMenu_CommitPartyMonPanelWindowsToVram_InVBlank(partyMenu, partyMenu->partyMonIndex); @@ -439,20 +439,20 @@ int sub_02081444(PartyMenuStruct *partyMenu) { spDefEv != GetMonData(mon, MON_DATA_SPDEF_EV, NULL) ) { if (friendship != GetMonData(mon, MON_DATA_FRIENDSHIP, NULL)) { - sub_02080E9C(partyMenu, partyMenu->args->itemId, 0); + PartyMenu_GetItemUseMessage(partyMenu, partyMenu->args->itemId, 0); } else { - sub_02080E9C(partyMenu, partyMenu->args->itemId, 1); + PartyMenu_GetItemUseMessage(partyMenu, partyMenu->args->itemId, 1); } } else { - sub_02080E9C(partyMenu, partyMenu->args->itemId, 2); + PartyMenu_GetItemUseMessage(partyMenu, partyMenu->args->itemId, 2); } PartyMenu_PrintMessageOnWindow34(partyMenu, -1, TRUE); - partyMenu->unk_C54 = sub_02081378; - return PARTY_MENU_STATE_5; + partyMenu->itemUseCallback = sub_02081378; + return PARTY_MENU_STATE_ITEM_USE_CB; } -int sub_020815E4(PartyMenuStruct *partyMenu) { - UseItemOnMonInParty(partyMenu->args->party, partyMenu->args->itemId, partyMenu->partyMonIndex, 0, sub_020828EC(partyMenu), HEAP_ID_PARTY_MENU); +static int PartyMenu_ItemUseFunc_HPRestore(PartyMenuStruct *partyMenu) { + UseItemOnMonInParty(partyMenu->args->party, partyMenu->args->itemId, partyMenu->partyMonIndex, 0, PartyMenu_GetCurrentMapSec(partyMenu), HEAP_ID_PARTY_MENU); Pokemon *mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); int hp = GetMonData(mon, MON_DATA_HP, NULL); String *string; @@ -473,12 +473,12 @@ int sub_020815E4(PartyMenuStruct *partyMenu) { PartyMenu_PrintMonLevelOnWindow(partyMenu, partyMenu->partyMonIndex); } sub_0207A7F4(partyMenu, partyMenu->partyMonIndex); - partyMenu->unk_C54 = sub_02081720; + partyMenu->itemUseCallback = PartyMenu_ItemUseFunc_HPRestoreAnimLoop; PlaySE(SEQ_SE_DP_KAIFUKU); - return PARTY_MENU_STATE_5; + return PARTY_MENU_STATE_ITEM_USE_CB; } -int sub_02081720(PartyMenuStruct *partyMenu) { +static int PartyMenu_ItemUseFunc_HPRestoreAnimLoop(PartyMenuStruct *partyMenu) { int hp = GetMonData(Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex), MON_DATA_HP, NULL); // Hook: Speed up HP restore here // This currently animates 1 HP per frame @@ -491,16 +491,16 @@ int sub_02081720(PartyMenuStruct *partyMenu) { PartyMenu_DrawMonHpBarOnWindow(partyMenu, partyMenu->partyMonIndex); if (hp == partyMenu->monsDrawState[partyMenu->partyMonIndex].hp) { PartyMenu_PrintMessageOnWindow34(partyMenu, -1, TRUE); - partyMenu->unk_C54 = sub_02081378; + partyMenu->itemUseCallback = sub_02081378; } - return PARTY_MENU_STATE_5; + return PARTY_MENU_STATE_ITEM_USE_CB; } BOOL sub_020817C4(u16 itemId) { return !!GetItemAttr(itemId, ITEMATTR_REVIVE_ALL, HEAP_ID_PARTY_MENU); } -u8 sub_020817DC(PartyMenuStruct *partyMenu, u8 a1) { +static u8 sub_020817DC(PartyMenuStruct *partyMenu, u8 a1) { if (a1 >= 6) { return 0xFF; } @@ -524,17 +524,17 @@ int PartyMenu_Subtask_SacredAsh(PartyMenuStruct *partyMenu) { if (partyMenu->partyMonIndex == 0xFF) { ReadMsgDataIntoString(partyMenu->msgData, msg_0300_00102, partyMenu->formattedStrBuf); PartyMenu_PrintMessageOnWindow34(partyMenu, -1, TRUE); - partyMenu->unk_C54 = sub_02081378; + partyMenu->itemUseCallback = sub_02081378; sub_0207F240(partyMenu, 0, 1); partyMenu->partyMonIndex = 7; - return PARTY_MENU_STATE_5; + return PARTY_MENU_STATE_ITEM_USE_CB; } else if (partyMenu->partyMonIndex != 0) { sub_0207A7F4(partyMenu, 0); } // fallthrough case 1: mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); - UseItemOnPokemon(mon, partyMenu->args->itemId, 0, sub_020828EC(partyMenu), HEAP_ID_PARTY_MENU); + UseItemOnPokemon(mon, partyMenu->args->itemId, 0, PartyMenu_GetCurrentMapSec(partyMenu), HEAP_ID_PARTY_MENU); hp = GetMonData(mon, MON_DATA_HP, NULL); string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00071); BufferBoxMonNickname(partyMenu->msgFormat, 0, Mon_GetBoxMon(mon)); @@ -580,15 +580,15 @@ int PartyMenu_Subtask_SacredAsh(PartyMenuStruct *partyMenu) { return PARTY_MENU_STATE_SACRED_ASH; } -int sub_02081A74(PartyMenuStruct *partyMenu) { +static int PartyMenu_ItemUseFunc_LevelUp(PartyMenuStruct *partyMenu) { Pokemon *mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); - partyMenu->unk_C68[0] = GetMonData(mon, MON_DATA_MAXHP, NULL); - partyMenu->unk_C68[1] = GetMonData(mon, MON_DATA_ATK, NULL); - partyMenu->unk_C68[2] = GetMonData(mon, MON_DATA_DEF, NULL); - partyMenu->unk_C68[3] = GetMonData(mon, MON_DATA_SPATK, NULL); - partyMenu->unk_C68[4] = GetMonData(mon, MON_DATA_SPDEF, NULL); - partyMenu->unk_C68[5] = GetMonData(mon, MON_DATA_SPEED, NULL); - UseItemOnMonInParty(partyMenu->args->party, partyMenu->args->itemId, partyMenu->partyMonIndex, 0, sub_020828EC(partyMenu), HEAP_ID_PARTY_MENU); + partyMenu->levelUpStatsTmp[0] = GetMonData(mon, MON_DATA_MAXHP, NULL); + partyMenu->levelUpStatsTmp[1] = GetMonData(mon, MON_DATA_ATK, NULL); + partyMenu->levelUpStatsTmp[2] = GetMonData(mon, MON_DATA_DEF, NULL); + partyMenu->levelUpStatsTmp[3] = GetMonData(mon, MON_DATA_SPATK, NULL); + partyMenu->levelUpStatsTmp[4] = GetMonData(mon, MON_DATA_SPDEF, NULL); + partyMenu->levelUpStatsTmp[5] = GetMonData(mon, MON_DATA_SPEED, NULL); + UseItemOnMonInParty(partyMenu->args->party, partyMenu->args->itemId, partyMenu->partyMonIndex, 0, PartyMenu_GetCurrentMapSec(partyMenu), HEAP_ID_PARTY_MENU); partyMenu->monsDrawState[partyMenu->partyMonIndex].level = GetMonData(mon, MON_DATA_LEVEL, NULL); partyMenu->monsDrawState[partyMenu->partyMonIndex].hp = GetMonData(mon, MON_DATA_HP, NULL); partyMenu->monsDrawState[partyMenu->partyMonIndex].maxHp = GetMonData(mon, MON_DATA_MAXHP, NULL); @@ -604,119 +604,119 @@ int sub_02081A74(PartyMenuStruct *partyMenu) { PartyMenu_PrintMonLevelOnWindow(partyMenu, partyMenu->partyMonIndex); } sub_0207A7F4(partyMenu, partyMenu->partyMonIndex); - partyMenu->unk_C54 = sub_02081720; + partyMenu->itemUseCallback = PartyMenu_ItemUseFunc_HPRestoreAnimLoop; sub_0207D5DC(partyMenu, partyMenu->partyMonIndex); PartyMenu_CommitPartyMonPanelWindowsToVram_InVBlank(partyMenu, partyMenu->partyMonIndex); PartyMenu_PrintMessageOnWindow34(partyMenu, -1, TRUE); - partyMenu->unk_C54 = sub_02081C50; - partyMenu->unk_C67 = 0; - return PARTY_MENU_STATE_5; + partyMenu->itemUseCallback = PartyMenu_ItemUseFunc_LevelUpLearnMovesLoop; + partyMenu->levelUpLearnMovesLoopState = 0; + return PARTY_MENU_STATE_ITEM_USE_CB; } -int sub_02081C50(PartyMenuStruct *partyMenu) { +static int PartyMenu_ItemUseFunc_LevelUpLearnMovesLoop(PartyMenuStruct *partyMenu) { Pokemon *mon; String *string; int mapEvoMethod; - switch (partyMenu->unk_C67) { + switch (partyMenu->levelUpLearnMovesLoopState) { case 0: if (!TextPrinterCheckActive(partyMenu->textPrinterId)) { PartyMenu_LevelUpPrintStatsChange(partyMenu); - partyMenu->unk_C67 = 1; + partyMenu->levelUpLearnMovesLoopState = 1; } break; case 1: if ((gSystem.newKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) || System_GetTouchNew() == TRUE) { PlaySE(SEQ_SE_DP_SELECT); sub_0207DF98(partyMenu); - partyMenu->unk_C67 = 2; + partyMenu->levelUpLearnMovesLoopState = 2; } break; case 2: if ((gSystem.newKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) || System_GetTouchNew() == TRUE) { PlaySE(SEQ_SE_DP_SELECT); sub_0207E04C(partyMenu); - partyMenu->unk_C67 = 3; - partyMenu->args->unk_38 = 0; + partyMenu->levelUpLearnMovesLoopState = 3; + partyMenu->args->levelUpMoveSearchState = 0; } break; case 3: mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); - switch (MonTryLearnMoveOnLevelUp(mon, &partyMenu->args->unk_38, &partyMenu->args->unk_2A)) { - case 0: - partyMenu->unk_C67 = 6; + switch (MonTryLearnMoveOnLevelUp(mon, &partyMenu->args->levelUpMoveSearchState, &partyMenu->args->moveId)) { + case MOVE_NONE: + partyMenu->levelUpLearnMovesLoopState = 6; break; case MOVE_APPEND_KNOWN: break; case MOVE_APPEND_FULL: BufferBoxMonNickname(partyMenu->msgFormat, 0, Mon_GetBoxMon(mon)); - BufferMoveName(partyMenu->msgFormat, 1, partyMenu->args->unk_2A); + BufferMoveName(partyMenu->msgFormat, 1, partyMenu->args->moveId); string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00053); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); PartyMenu_PrintMessageOnWindow34(partyMenu, -1, FALSE); - partyMenu->yesCallback = sub_02081F8C; - partyMenu->noCallback = sub_02081FE0; + partyMenu->yesCallback = PartyMenu_ItemUseFunc_LevelUpPromptForgetMove; + partyMenu->noCallback = PartyMenu_ItemUseFunc_LevelUpAskStopTryingToLearn; partyMenu->afterTextPrinterState = PARTY_MENU_STATE_YES_NO_INIT; return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; default: BufferBoxMonNickname(partyMenu->msgFormat, 0, Mon_GetBoxMon(mon)); - BufferMoveName(partyMenu->msgFormat, 1, partyMenu->args->unk_2A); + BufferMoveName(partyMenu->msgFormat, 1, partyMenu->args->moveId); string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00178); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); PartyMenu_PrintMessageOnWindow34(partyMenu, -1, FALSE); - partyMenu->unk_C67 = 4; + partyMenu->levelUpLearnMovesLoopState = 4; break; } break; case 4: if (!TextPrinterCheckActive(partyMenu->textPrinterId)) { - partyMenu->unk_C67 = 3; + partyMenu->levelUpLearnMovesLoopState = 3; } break; case 5: mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); - sub_0208254C(partyMenu, mon, partyMenu->args->unk_2C); + PartyMenu_LearnMoveToSlot(partyMenu, mon, partyMenu->args->selectedMoveIdx); string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00062); - BufferMoveName(partyMenu->msgFormat, 1, partyMenu->args->unk_2A); + BufferMoveName(partyMenu->msgFormat, 1, partyMenu->args->moveId); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); PartyMenu_PrintMessageOnWindow34(partyMenu, -1, FALSE); - partyMenu->unk_C67 = 4; + partyMenu->levelUpLearnMovesLoopState = 4; break; case 6: mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); mapEvoMethod = MapHeader_GetMapEvolutionMethod(partyMenu->args->fieldSystem->location->mapId); - partyMenu->args->species = GetMonEvolution(partyMenu->args->party, mon, EVOCTX_LEVELUP, mapEvoMethod, &partyMenu->args->unk_40); + partyMenu->args->species = GetMonEvolution(partyMenu->args->party, mon, EVOCTX_LEVELUP, mapEvoMethod, &partyMenu->args->evoMethod); partyMenu->args->selectedAction = partyMenu->args->species != SPECIES_NONE ? PARTY_MENU_ACTION_RETURN_EVO_RARE_CANDY : PARTY_MENU_ACTION_RETURN_0; return PARTY_MENU_STATE_BEGIN_EXIT; } - return PARTY_MENU_STATE_5; + return PARTY_MENU_STATE_ITEM_USE_CB; } -int sub_02081ED0(PartyMenuStruct *partyMenu) { - partyMenu->unk_C54 = sub_02081C50; - partyMenu->unk_C67 = 3; +int PartyMenu_ItemUseFunc_LevelUpDoLearnMove(PartyMenuStruct *partyMenu) { + partyMenu->itemUseCallback = PartyMenu_ItemUseFunc_LevelUpLearnMovesLoop; + partyMenu->levelUpLearnMovesLoopState = 3; Pokemon *mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); BufferBoxMonNickname(partyMenu->msgFormat, 0, Mon_GetBoxMon(mon)); - if (partyMenu->args->unk_2C == 4) { - BufferMoveName(partyMenu->msgFormat, 1, partyMenu->args->unk_2A); - return sub_02081FE0(partyMenu); + if (partyMenu->args->selectedMoveIdx == 4) { + BufferMoveName(partyMenu->msgFormat, 1, partyMenu->args->moveId); + return PartyMenu_ItemUseFunc_LevelUpAskStopTryingToLearn(partyMenu); } else { - BufferMoveName(partyMenu->msgFormat, 1, GetMonData(mon, MON_DATA_MOVE1 + partyMenu->args->unk_2C, NULL)); + BufferMoveName(partyMenu->msgFormat, 1, GetMonData(mon, MON_DATA_MOVE1 + partyMenu->args->selectedMoveIdx, NULL)); String *string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00061); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); PartyMenu_PrintMessageOnWindow34(partyMenu, -1, TRUE); - partyMenu->afterTextPrinterState = PARTY_MENU_STATE_5; - partyMenu->unk_C67 = 5; + partyMenu->afterTextPrinterState = PARTY_MENU_STATE_ITEM_USE_CB; + partyMenu->levelUpLearnMovesLoopState = 5; return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; } } -int sub_02081F8C(PartyMenuStruct *partyMenu) { +static int PartyMenu_ItemUseFunc_LevelUpPromptForgetMove(PartyMenuStruct *partyMenu) { String *string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00060); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); @@ -726,43 +726,43 @@ int sub_02081F8C(PartyMenuStruct *partyMenu) { return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; } -int sub_02081FE0(PartyMenuStruct *partyMenu) { +static int PartyMenu_ItemUseFunc_LevelUpAskStopTryingToLearn(PartyMenuStruct *partyMenu) { String *string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00056); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); PartyMenu_PrintMessageOnWindow34(partyMenu, -1, TRUE); - partyMenu->yesCallback = sub_02082038; - partyMenu->noCallback = sub_02082084; + partyMenu->yesCallback = PartyMenu_ItemUseFunc_LevelUpDidNotLearnMove; + partyMenu->noCallback = PartyMenu_ItemUseFunc_LevelUpAskAgainToForget; partyMenu->afterTextPrinterState = PARTY_MENU_STATE_YES_NO_INIT; return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; } -int sub_02082038(PartyMenuStruct *partyMenu) { +static int PartyMenu_ItemUseFunc_LevelUpDidNotLearnMove(PartyMenuStruct *partyMenu) { String *string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00059); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); PartyMenu_PrintMessageOnWindow34(partyMenu, -1, FALSE); - partyMenu->afterTextPrinterState = PARTY_MENU_STATE_5; - partyMenu->unk_C67 = 4; + partyMenu->afterTextPrinterState = PARTY_MENU_STATE_ITEM_USE_CB; + partyMenu->levelUpLearnMovesLoopState = 4; return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; } -int sub_02082084(PartyMenuStruct *partyMenu) { +static int PartyMenu_ItemUseFunc_LevelUpAskAgainToForget(PartyMenuStruct *partyMenu) { String *string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00053); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); PartyMenu_PrintMessageOnWindow34(partyMenu, -1, FALSE); - partyMenu->yesCallback = sub_02081F8C; - partyMenu->noCallback = sub_02081FE0; + partyMenu->yesCallback = PartyMenu_ItemUseFunc_LevelUpPromptForgetMove; + partyMenu->noCallback = PartyMenu_ItemUseFunc_LevelUpAskStopTryingToLearn; partyMenu->afterTextPrinterState = PARTY_MENU_STATE_YES_NO_INIT; return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; } -u8 sub_020820DC(PartyMenuStruct *partyMenu, Pokemon *mon) { +u8 PartyMenu_CheckCanLearnTMHMMove(PartyMenuStruct *partyMenu, Pokemon *mon) { u8 i; for (i = 0; i < MAX_MON_MOVES; ++i) { u16 move = GetMonData(mon, MON_DATA_MOVE1 + i, NULL); - if (move == partyMenu->args->unk_2A) { + if (move == partyMenu->args->moveId) { return LEARN_MOVE_CHECK_KNOWN; } if (move == MOVE_NONE) { @@ -783,17 +783,17 @@ u8 sub_020820DC(PartyMenuStruct *partyMenu, Pokemon *mon) { int sub_02082134(PartyMenuStruct *partyMenu) { Pokemon *mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); - u32 response = sub_020820DC(partyMenu, mon); + u32 response = PartyMenu_CheckCanLearnTMHMMove(partyMenu, mon); String *string; BufferBoxMonNickname(partyMenu->msgFormat, 0, Mon_GetBoxMon(mon)); - BufferMoveName(partyMenu->msgFormat, 1, partyMenu->args->unk_2A); + BufferMoveName(partyMenu->msgFormat, 1, partyMenu->args->moveId); switch (response) { case 0: case 1: case 2: case 3: - sub_0208254C(partyMenu, mon, response); + PartyMenu_LearnMoveToSlot(partyMenu, mon, response); string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00062); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); @@ -814,8 +814,8 @@ int sub_02082134(PartyMenuStruct *partyMenu) { StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); PartyMenu_PrintMessageOnWindow34(partyMenu, -1, TRUE); - partyMenu->yesCallback = sub_020823F4; - partyMenu->noCallback = sub_02082448; + partyMenu->yesCallback = PartyMenu_ItemUseFunc_TMHMPromptForgetMove; + partyMenu->noCallback = PartyMenu_ItemUseFunc_TMHMAskStopTryingToLearn; partyMenu->afterTextPrinterState = PARTY_MENU_STATE_YES_NO_INIT; break; case LEARN_MOVE_CHECK_INCOMPAT: @@ -833,11 +833,11 @@ int sub_02082134(PartyMenuStruct *partyMenu) { int sub_020822CC(PartyMenuStruct *partyMenu) { Pokemon *mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); BufferBoxMonNickname(partyMenu->msgFormat, 0, Mon_GetBoxMon(mon)); - if (partyMenu->args->unk_2C == 4) { - BufferMoveName(partyMenu->msgFormat, 1, partyMenu->args->unk_2A); - return sub_02082448(partyMenu); + if (partyMenu->args->selectedMoveIdx == 4) { + BufferMoveName(partyMenu->msgFormat, 1, partyMenu->args->moveId); + return PartyMenu_ItemUseFunc_TMHMAskStopTryingToLearn(partyMenu); } else { - BufferMoveName(partyMenu->msgFormat, 1, GetMonData(mon, MON_DATA_MOVE1 + partyMenu->args->unk_2C, NULL)); + BufferMoveName(partyMenu->msgFormat, 1, GetMonData(mon, MON_DATA_MOVE1 + partyMenu->args->selectedMoveIdx, NULL)); String *string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00061); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); @@ -849,9 +849,9 @@ int sub_020822CC(PartyMenuStruct *partyMenu) { int sub_02082370(PartyMenuStruct *partyMenu) { Pokemon *mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); - sub_0208254C(partyMenu, mon, partyMenu->args->unk_2C); + PartyMenu_LearnMoveToSlot(partyMenu, mon, partyMenu->args->selectedMoveIdx); String *string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00062); - BufferMoveName(partyMenu->msgFormat, 1, partyMenu->args->unk_2A); + BufferMoveName(partyMenu->msgFormat, 1, partyMenu->args->moveId); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); PartyMenu_PrintMessageOnWindow34(partyMenu, -1, FALSE); @@ -860,7 +860,7 @@ int sub_02082370(PartyMenuStruct *partyMenu) { return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; } -int sub_020823F4(PartyMenuStruct *partyMenu) { +static int PartyMenu_ItemUseFunc_TMHMPromptForgetMove(PartyMenuStruct *partyMenu) { String *string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00060); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); @@ -870,18 +870,18 @@ int sub_020823F4(PartyMenuStruct *partyMenu) { return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; } -int sub_02082448(PartyMenuStruct *partyMenu) { +static int PartyMenu_ItemUseFunc_TMHMAskStopTryingToLearn(PartyMenuStruct *partyMenu) { String *string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00056); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); PartyMenu_PrintMessageOnWindow34(partyMenu, -1, TRUE); - partyMenu->yesCallback = sub_020824A0; - partyMenu->noCallback = sub_020824F4; + partyMenu->yesCallback = PartyMenu_ItemUseFunc_TMHMDidNotLearnMove; + partyMenu->noCallback = PartyMenu_ItemUseFunc_TMHMAskAgainToForget; partyMenu->afterTextPrinterState = PARTY_MENU_STATE_YES_NO_INIT; return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; } -int sub_020824A0(PartyMenuStruct *partyMenu) { +static int PartyMenu_ItemUseFunc_TMHMDidNotLearnMove(PartyMenuStruct *partyMenu) { String *string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00059); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); @@ -891,34 +891,34 @@ int sub_020824A0(PartyMenuStruct *partyMenu) { return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; } -int sub_020824F4(PartyMenuStruct *partyMenu) { +static int PartyMenu_ItemUseFunc_TMHMAskAgainToForget(PartyMenuStruct *partyMenu) { String *string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00053); StringExpandPlaceholders(partyMenu->msgFormat, partyMenu->formattedStrBuf, string); String_Delete(string); PartyMenu_PrintMessageOnWindow34(partyMenu, -1, FALSE); - partyMenu->yesCallback = sub_020823F4; - partyMenu->noCallback = sub_02082448; + partyMenu->yesCallback = PartyMenu_ItemUseFunc_TMHMPromptForgetMove; + partyMenu->noCallback = PartyMenu_ItemUseFunc_TMHMAskStopTryingToLearn; partyMenu->afterTextPrinterState = PARTY_MENU_STATE_YES_NO_INIT; return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; } - void sub_0208254C(PartyMenuStruct *partyMenu, Pokemon *mon, int moveIdx) { - int data = partyMenu->args->unk_2A; + void PartyMenu_LearnMoveToSlot(PartyMenuStruct *partyMenu, Pokemon *mon, int moveIdx) { + int data = partyMenu->args->moveId; SetMonData(mon, MON_DATA_MOVE1 + moveIdx, &data); data = 0; SetMonData(mon, MON_DATA_MOVE1PPUP + moveIdx, &data); - data = GetMoveMaxPP(partyMenu->args->unk_2A, 0); + data = GetMoveMaxPP(partyMenu->args->moveId, 0); SetMonData(mon, MON_DATA_MOVE1PP + moveIdx, &data); if (partyMenu->args->itemId != ITEM_NONE) { - if (!MoveIsHM(partyMenu->args->unk_2A)) { + if (!MoveIsHM(partyMenu->args->moveId)) { Bag_TakeItem(partyMenu->args->bag, partyMenu->args->itemId, 1, HEAP_ID_PARTY_MENU); } - MonApplyFriendshipMod(mon, FRIENDSHIP_EVENT_LEARN_TMHM, sub_020828EC(partyMenu)); + MonApplyFriendshipMod(mon, FRIENDSHIP_EVENT_LEARN_TMHM, PartyMenu_GetCurrentMapSec(partyMenu)); ApplyMonMoodModifier(mon, MON_MOOD_MODIFIER_LEARN_TMHM); } } - u8 sub_020825D8(PartyMenuStruct *partyMenu, int moveIdx) { + u8 PartyMenu_AddMoveNameToList(PartyMenuStruct *partyMenu, int moveIdx) { Pokemon *mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); u16 moveId = GetMonData(mon, MON_DATA_MOVE1 + moveIdx, NULL); String *string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00145 + moveIdx); @@ -933,18 +933,18 @@ int sub_020824F4(PartyMenuStruct *partyMenu) { } } - void sub_02082654(PartyMenuStruct *partyMenu, BOOL a1) { + void PartyMenu_SelectMoveForPpRestoreOrPpUp(PartyMenuStruct *partyMenu, BOOL isPpRestore) { ClearFrameAndWindow2(&partyMenu->windows[PARTY_MENU_WINDOW_ID_32], TRUE); - if (!a1) { + if (!isPpRestore) { PartyMenu_PrintMessageOnWindow33(partyMenu, msg_0300_00042, TRUE); } else { PartyMenu_PrintMessageOnWindow33(partyMenu, msg_0300_00041, TRUE); } partyMenu->listMenuItems = ListMenuItems_New(5, HEAP_ID_PARTY_MENU); - u8 numItems = sub_020825D8(partyMenu, 0); - numItems += sub_020825D8(partyMenu, 1); - numItems += sub_020825D8(partyMenu, 2); - numItems += sub_020825D8(partyMenu, 3); + u8 numItems = PartyMenu_AddMoveNameToList(partyMenu, 0); + numItems += PartyMenu_AddMoveNameToList(partyMenu, 1); + numItems += PartyMenu_AddMoveNameToList(partyMenu, 2); + numItems += PartyMenu_AddMoveNameToList(partyMenu, 3); ListMenuItems_AddItem(partyMenu->listMenuItems, partyMenu->contextMenuStrings[PARTY_MON_CONTEXT_MENU_QUIT], GetPartyMenuContextMenuActionFunc(PARTY_MON_CONTEXT_MENU_QUIT)); PartyMenuContextMenu contextMenu; @@ -966,7 +966,7 @@ int PartyMenu_Subtask_SelectMove(PartyMenuStruct *partyMenu) { case LIST_CANCEL: ClearFrameAndWindow2(&partyMenu->windows[PARTY_MENU_WINDOW_ID_33], TRUE); sub_0200E5D4(&partyMenu->windows[PARTY_MENU_WINDOW_ID_36], TRUE); - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); PartyMenu_PrintMessageOnWindow32(partyMenu, msg_0300_00033, TRUE); thunk_Sprite_SetPalIndex(partyMenu->sprites[PARTY_MENU_SPRITE_ID_CURSOR], 0); @@ -974,12 +974,12 @@ int PartyMenu_Subtask_SelectMove(PartyMenuStruct *partyMenu) { default: ClearFrameAndWindow2(&partyMenu->windows[PARTY_MENU_WINDOW_ID_33], TRUE); sub_0200E5D4(&partyMenu->windows[PARTY_MENU_WINDOW_ID_36], TRUE); - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); - if (UseItemOnMonInParty(partyMenu->args->party, partyMenu->args->itemId, partyMenu->partyMonIndex, input, sub_020828EC(partyMenu), HEAP_ID_PARTY_MENU) == TRUE) { + if (UseItemOnMonInParty(partyMenu->args->party, partyMenu->args->itemId, partyMenu->partyMonIndex, input, PartyMenu_GetCurrentMapSec(partyMenu), HEAP_ID_PARTY_MENU) == TRUE) { Pokemon *mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); int moveId = GetMonData(mon, MON_DATA_MOVE1 + input, NULL); - sub_02080E9C(partyMenu, partyMenu->args->itemId, moveId); + PartyMenu_GetItemUseMessage(partyMenu, partyMenu->args->itemId, moveId); Bag_TakeItem(partyMenu->args->bag, partyMenu->args->itemId, 1, HEAP_ID_PARTY_MENU); PlaySE(SEQ_SE_DP_KAIFUKU); } else { @@ -994,7 +994,7 @@ int PartyMenu_Subtask_SelectMove(PartyMenuStruct *partyMenu) { } } -void sub_02082868(PartyMenuStruct *partyMenu) { +void PartyMenu_HandleAttachMailFromMailbox(PartyMenuStruct *partyMenu) { ClearFrameAndWindow2(&partyMenu->windows[PARTY_MENU_WINDOW_ID_32], TRUE); if (partyMenu->monsDrawState[partyMenu->partyMonIndex].heldItem == ITEM_NONE) { ReadMsgDataIntoString(partyMenu->msgData, msg_0300_00116, partyMenu->formattedStrBuf); @@ -1009,7 +1009,7 @@ void sub_02082868(PartyMenuStruct *partyMenu) { partyMenu->afterTextPrinterState = PARTY_MENU_STATE_25; } -u16 sub_020828EC(PartyMenuStruct *partyMenu) { +static u16 PartyMenu_GetCurrentMapSec(PartyMenuStruct *partyMenu) { int ret = MapHeader_GetMapSec(partyMenu->args->fieldSystem->location->mapId); return ret; } diff --git a/src/party_menu_list_items.c b/src/party_menu_list_items.c index 83a337992..8b61794a8 100644 --- a/src/party_menu_list_items.c +++ b/src/party_menu_list_items.c @@ -92,7 +92,7 @@ u32 GetPartyMenuContextMenuActionFunc(int index) { } static void PartyMonContextMenuAction_Item(PartyMenuStruct *partyMenu, int *pState) { - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_PrintMessageOnWindow33(partyMenu, msg_0300_00039, FALSE); partyMenu->listMenuItems = ListMenuItems_New(3, HEAP_ID_PARTY_MENU); ListMenuItems_AddItem(partyMenu->listMenuItems, partyMenu->contextMenuStrings[PARTY_MON_CONTEXT_MENU_GIVE], GetPartyMenuContextMenuActionFunc(PARTY_MON_CONTEXT_MENU_GIVE)); @@ -115,7 +115,7 @@ static void PartyMonContextMenuAction_Item(PartyMenuStruct *partyMenu, int *pSta } static void PartyMonContextMenuAction_Give(PartyMenuStruct *partyMenu, int *pState) { - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); partyMenu->args->selectedAction = PARTY_MENU_ACTION_RETURN_GIVE_ITEM; *pState = PARTY_MENU_STATE_BEGIN_EXIT; @@ -127,7 +127,7 @@ static void PartyMonContextMenuAction_Take(PartyMenuStruct *partyMenu, int *pSta BOOL griseousOrbResult; sub_0200E5D4(&partyMenu->windows[PARTY_MENU_WINDOW_ID_35], TRUE); - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); if (partyMenu->monsDrawState[partyMenu->partyMonIndex].heldItem == ITEM_NONE) { mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex); @@ -194,7 +194,7 @@ int PartyMenu_Subtask_WaitTakeGriseousOrbAnim(PartyMenuStruct *partyMenu) { } static void PartyMonContextMenuAction_Mail(PartyMenuStruct *partyMenu, int *pState) { - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_PrintMessageOnWindow33(partyMenu, msg_0300_00040, FALSE); partyMenu->listMenuItems = ListMenuItems_New(3, HEAP_ID_PARTY_MENU); ListMenuItems_AddItem(partyMenu->listMenuItems, partyMenu->contextMenuStrings[PARTY_MON_CONTEXT_MENU_READ_MAIL], GetPartyMenuContextMenuActionFunc(PARTY_MON_CONTEXT_MENU_READ_MAIL)); @@ -217,7 +217,7 @@ static void PartyMonContextMenuAction_Mail(PartyMenuStruct *partyMenu, int *pSta } static void PartyMonContextMenuAction_ReadMail(PartyMenuStruct *partyMenu, int *pState) { - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); partyMenu->args->selectedAction = PARTY_MENU_ACTION_RETURN_READ_MAIL; *pState = PARTY_MENU_STATE_BEGIN_EXIT; @@ -225,7 +225,7 @@ static void PartyMonContextMenuAction_ReadMail(PartyMenuStruct *partyMenu, int * static void PartyMonContextMenuAction_TakeMail(PartyMenuStruct *partyMenu, int *pState) { sub_0200E5D4(&partyMenu->windows[PARTY_MENU_WINDOW_ID_35], TRUE); - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); PartyMenu_PrintMessageOnWindow34(partyMenu, msg_0300_00044, TRUE); partyMenu->yesCallback = PartyMenu_TakeMail_SendToPC; @@ -293,7 +293,7 @@ int sub_0207FA08(PartyMenuStruct *partyMenu) { } static void PartyMonContextMenuAction_Store(PartyMenuStruct *partyMenu, int *pState) { - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); if (partyMenu->monsDrawState[partyMenu->partyMonIndex].capsule == 0) { partyMenu->args->selectedAction = PARTY_MENU_ACTION_RETURN_0; @@ -333,7 +333,7 @@ static void PartyMonContextMenuAction_Switch(PartyMenuStruct *partyMenu, int *pS Set2dSpriteVisibleFlag(partyMenu->sprites[PARTY_MENU_SPRITE_ID_SWITCH_MON_CURSOR], TRUE); sub_0207A7F4(partyMenu, partyMenu->softboiledDonorSlot); ClearFrameAndWindow2(&partyMenu->windows[PARTY_MENU_WINDOW_ID_33], TRUE); - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); PartyMenu_PrintMessageOnWindow32(partyMenu, msg_0300_00031, TRUE); *pState = PARTY_MENU_STATE_SELECT_SWITCH_MON; @@ -558,7 +558,7 @@ static void PartyMenu_RedrawMonHpBarAfterSwap(PartyMenuStruct *partyMenu, u8 slo static void PartyMonContextMenuAction_Enter(PartyMenuStruct *partyMenu, int *pState) { ClearFrameAndWindow2(&partyMenu->windows[PARTY_MENU_WINDOW_ID_33], TRUE); - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); PartyMenu_SetTopScreenSelectionPanelVisibility(partyMenu, FALSE); for (u8 i = 0; i < partyMenu->args->maxMonsToSelect; ++i) { @@ -622,7 +622,7 @@ static void PartyMonContextMenuAction_NoEntry(PartyMenuStruct *partyMenu, int *p } } ClearFrameAndWindow2(&partyMenu->windows[PARTY_MENU_WINDOW_ID_33], TRUE); - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); PartyMenu_PrintMessageOnWindow32(partyMenu, msg_0300_00035, TRUE); thunk_Sprite_SetPalIndex(partyMenu->sprites[PARTY_MENU_SPRITE_ID_CURSOR], 0); @@ -631,27 +631,27 @@ static void PartyMonContextMenuAction_NoEntry(PartyMenuStruct *partyMenu, int *p static void PartyMonContextMenuAction_ContestEnter(PartyMenuStruct *partyMenu, int *pState) { partyMenu->args->selectedAction = PARTY_MENU_ACTION_RETURN_0; - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); *pState = PARTY_MENU_STATE_BEGIN_EXIT; } static void PartyMonContextMenuAction_Confirm(PartyMenuStruct *partyMenu, int *pState) { partyMenu->args->selectedAction = PARTY_MENU_ACTION_RETURN_0; - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); *pState = PARTY_MENU_STATE_BEGIN_EXIT; } static void PartyMonContextMenuAction_Summary(PartyMenuStruct *partyMenu, int *pState) { partyMenu->args->selectedAction = PARTY_MENU_ACTION_RETURN_1; - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); *pState = PARTY_MENU_STATE_BEGIN_EXIT; } static void PartyMonContextMenuAction_Set(PartyMenuStruct *partyMenu, int *pState) { - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); ClearFrameAndWindow2(&partyMenu->windows[PARTY_MENU_WINDOW_ID_33], TRUE); *pState = PartyMenu_HandleSetMonCapsule(partyMenu); @@ -685,7 +685,7 @@ static void PartyMenuContextMenuAction_FieldMoveCommon(PartyMenuStruct *partyMen } switch (response) { case PARTY_MENU_RESPONSE_OK: - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); *pState = PARTY_MENU_STATE_BEGIN_EXIT; return; @@ -706,7 +706,7 @@ static void PartyMenuContextMenuAction_FieldMoveCommon(PartyMenuStruct *partyMen break; } ClearFrameAndWindow2(&partyMenu->windows[PARTY_MENU_WINDOW_ID_33], TRUE); - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); PartyMenu_PrintMessageOnWindow34(partyMenu, msgId, TRUE); partyMenu->afterTextPrinterState = PARTY_MENU_STATE_3; @@ -781,14 +781,14 @@ static void PartyMonContextMenuAction_Chatter(PartyMenuStruct *partyMenu, int *p static void PartyMonContextMenuAction_MilkDrink(PartyMenuStruct *partyMenu, int *pState) { *pState = sub_02080A58(partyMenu); if (*pState == PARTY_MENU_STATE_SOFTBOILED) { - partyMenu->unk_C68[3] = PARTY_MENU_ACTION_RETURN_MILK_DRINK - PARTY_MENU_ACTION_RETURN_FIELD_MOVE_BEGIN; + partyMenu->levelUpStatsTmp[3] = PARTY_MENU_ACTION_RETURN_MILK_DRINK - PARTY_MENU_ACTION_RETURN_FIELD_MOVE_BEGIN; } } static void PartyMonContextMenuAction_Softboiled(PartyMenuStruct *partyMenu, int *pState) { *pState = sub_02080A58(partyMenu); if (*pState == PARTY_MENU_STATE_SOFTBOILED) { - partyMenu->unk_C68[3] = PARTY_MENU_ACTION_RETURN_SOFTBOILED - PARTY_MENU_ACTION_RETURN_FIELD_MOVE_BEGIN; + partyMenu->levelUpStatsTmp[3] = PARTY_MENU_ACTION_RETURN_SOFTBOILED - PARTY_MENU_ACTION_RETURN_FIELD_MOVE_BEGIN; } } @@ -799,10 +799,10 @@ static void PartyMonContextMenuAction_Headbutt(PartyMenuStruct *partyMenu, int * static int sub_02080A58(PartyMenuStruct *partyMenu) { ClearFrameAndWindow2(&partyMenu->windows[PARTY_MENU_WINDOW_ID_33], TRUE); - sub_0207CB20(partyMenu); + PartyMenu_DeleteContextMenuAndList(partyMenu); PartyMenu_DisableMainScreenBlend_AfterYesNo(); - partyMenu->unk_C68[0] = partyMenu->monsDrawState[partyMenu->partyMonIndex].maxHp / 5; - if (partyMenu->monsDrawState[partyMenu->partyMonIndex].hp <= partyMenu->unk_C68[0]) { + partyMenu->levelUpStatsTmp[0] = partyMenu->monsDrawState[partyMenu->partyMonIndex].maxHp / 5; + if (partyMenu->monsDrawState[partyMenu->partyMonIndex].hp <= partyMenu->levelUpStatsTmp[0]) { PartyMenu_PrintMessageOnWindow34(partyMenu, msg_0300_00127, TRUE);partyMenu->afterTextPrinterState = PARTY_MENU_STATE_3; return PARTY_MENU_STATE_WAIT_TEXT_PRINTER; } @@ -816,7 +816,7 @@ static int sub_02080A58(PartyMenuStruct *partyMenu) { Set2dSpriteVisibleFlag(partyMenu->sprites[PARTY_MENU_SPRITE_ID_SWITCH_MON_CURSOR], TRUE); sub_0207A7F4(partyMenu, partyMenu->softboiledDonorSlot); PartyMenu_PrintMessageOnWindow32(partyMenu, msg_0300_00037, TRUE); - partyMenu->unk_C68[1] = 0; + partyMenu->levelUpStatsTmp[1] = 0; return PARTY_MENU_STATE_SOFTBOILED; } diff --git a/src/start_menu.c b/src/start_menu.c index 2cba72e1e..2606921ff 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -901,7 +901,7 @@ BOOL Task_StartMenu_HandleReturn_Pokemon(TaskManager *taskManager) { pokemonSummaryArgs->unk11 = 1; pokemonSummaryArgs->partySlot = partyMenuArgs->partySlot; pokemonSummaryArgs->partyCount = 1; - pokemonSummaryArgs->unk18 = partyMenuArgs->unk_2A; + pokemonSummaryArgs->unk18 = partyMenuArgs->moveId; pokemonSummaryArgs->unk12 = 2; pokemonSummaryArgs->natDexEnabled = SaveArray_IsNatDexEnabled(fieldSystem->saveData); pokemonSummaryArgs->unk2C = sub_02088288(fieldSystem->saveData); @@ -926,7 +926,7 @@ BOOL Task_StartMenu_HandleReturn_Pokemon(TaskManager *taskManager) { pokemonSummaryArgs->unk11 = 1; pokemonSummaryArgs->partySlot = partyMenuArgs->partySlot; pokemonSummaryArgs->partyCount = 1; - pokemonSummaryArgs->unk18 = partyMenuArgs->unk_2A; + pokemonSummaryArgs->unk18 = partyMenuArgs->moveId; pokemonSummaryArgs->unk12 = 2; pokemonSummaryArgs->natDexEnabled = SaveArray_IsNatDexEnabled(fieldSystem->saveData); pokemonSummaryArgs->unk2C = sub_02088288(fieldSystem->saveData); @@ -938,7 +938,7 @@ BOOL Task_StartMenu_HandleReturn_Pokemon(TaskManager *taskManager) { PokemonSummary_LearnForget_LaunchApp(fieldSystem, pokemonSummaryArgs); UnkStruct_0203D580 *unk = AllocFromHeap(HEAP_ID_FIELD, sizeof(UnkStruct_0203D580)); unk->itemId = ITEM_NONE; - unk->unk_2 = partyMenuArgs->unk_38; + unk->unk_2 = partyMenuArgs->levelUpMoveSearchState; startMenu->atexit_TaskEnv2 = unk; startMenu->atexit_TaskEnv = pokemonSummaryArgs; StartMenu_SetChildProcReturnTaskFunc(startMenu, sub_0203D580); @@ -977,7 +977,7 @@ BOOL Task_StartMenu_HandleReturn_Pokemon(TaskManager *taskManager) { unk->evoType = EVOCTX_ITEM_USE; unk->partySlot = partyMenuArgs->partySlot; unk->species = partyMenuArgs->species; - unk->unk_8 = partyMenuArgs->unk_40; + unk->unk_8 = partyMenuArgs->evoMethod; startMenu->atexit_TaskEnv = unk; startMenu->state = START_MENU_STATE_EVOLUTION; break; @@ -988,7 +988,7 @@ BOOL Task_StartMenu_HandleReturn_Pokemon(TaskManager *taskManager) { unk->evoType = EVOCTX_LEVELUP; unk->partySlot = partyMenuArgs->partySlot; unk->species = partyMenuArgs->species; - unk->unk_8 = partyMenuArgs->unk_40; + unk->unk_8 = partyMenuArgs->evoMethod; startMenu->atexit_TaskEnv = unk; startMenu->state = START_MENU_STATE_EVOLUTION; break; @@ -1362,14 +1362,14 @@ static BOOL sub_0203D580(TaskManager *taskManager) { sub_0203CF74(partyMenuArgs, fieldSystem, startMenu); partyMenuArgs->itemId = r7->itemId; partyMenuArgs->partySlot = summaryArgs->partySlot; - partyMenuArgs->unk_2A = summaryArgs->unk18; - partyMenuArgs->unk_2C = summaryArgs->unk16; + partyMenuArgs->moveId = summaryArgs->unk18; + partyMenuArgs->selectedMoveIdx = summaryArgs->unk16; if (r7->itemId != ITEM_NONE) { partyMenuArgs->context = PARTY_MENU_CONTEXT_7; - partyMenuArgs->unk_38 = 0; + partyMenuArgs->levelUpMoveSearchState = 0; } else { partyMenuArgs->context = PARTY_MENU_CONTEXT_8; - partyMenuArgs->unk_38 = r7->unk_2; + partyMenuArgs->levelUpMoveSearchState = r7->unk_2; } partyMenuArgs->unk_20 = &fieldSystem->unk_10C; FieldSystem_LaunchApplication(fieldSystem, &gOverlayTemplate_PartyMenu, partyMenuArgs);