diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/battle/battle_2.c | 2 | ||||
-rw-r--r-- | src/battle/battle_party_menu.c | 14 | ||||
-rw-r--r-- | src/engine/sprite.c | 5 | ||||
-rw-r--r-- | src/field/choose_party.c | 26 | ||||
-rw-r--r-- | src/field/daycare.c | 2 | ||||
-rw-r--r-- | src/field/party_menu.c | 209 | ||||
-rw-r--r-- | src/pokemon/pokemon_menu.c | 34 | ||||
-rw-r--r-- | src/script_pokemon_util_80F99CC.c | 22 |
8 files changed, 162 insertions, 152 deletions
diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 770aa1209..75358e636 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -612,7 +612,7 @@ void sub_800F104(void) *pSavedCallback = gMain.savedCallback; *pSavedBattleTypeFlags = gBattleTypeFlags; gMain.savedCallback = sub_800F104; - OpenPartyMenu(5, 0); + OpenPartyMenu(PARTY_MENU_TYPE_LINK_MULTI_BATTLE, 0); } break; case 2: diff --git a/src/battle/battle_party_menu.c b/src/battle/battle_party_menu.c index dc7c5db5b..cc938a054 100644 --- a/src/battle/battle_party_menu.c +++ b/src/battle/battle_party_menu.c @@ -28,8 +28,6 @@ extern void nullsub_13(void); extern u8 sub_806B58C(u8); extern void sub_802E414(void); extern void sub_80A6DCC(void); -extern void sub_806AF4C(); -extern void sub_806AEDC(void); extern u8 *sub_8040D08(); extern void sub_8040B8C(void); extern void nullsub_14(); @@ -340,7 +338,7 @@ void sub_8094E20(u8 a) gUnknown_02038473 = a; nullsub_14(); pokemon_change_order(); - OpenPartyMenu(1, 0xFF); + OpenPartyMenu(PARTY_MENU_TYPE_BATTLE, 0xFF); } void sub_8094E4C(void) @@ -465,7 +463,7 @@ static void sub_8095050(u8 a, u8 b) ShowPartyPopupMenu(gTasks[a].data[4], sBattlePartyPopupMenus, sBattlePartyMenuActions, 0); } -void SetUpBattlePokemonMenu(u8 a) +void HandleBattlePartyMenu(u8 a) { if (!gPaletteFade.active) { @@ -493,7 +491,7 @@ void SetUpBattlePokemonMenu(u8 a) PlaySE(SE_SELECT); GetMonNickname(&gPlayerParty[sub_806CA38(a)], gStringVar1); sub_8095050(a, sub_806CA38(a)); - SetTaskFuncWithFollowupFunc(a, Task_HandlePopupMenuInput, SetUpBattlePokemonMenu); + SetTaskFuncWithFollowupFunc(a, Task_HandlePopupMenuInput, HandleBattlePartyMenu); } break; case 2: @@ -558,7 +556,7 @@ static void Task_8095330(u8 taskId) static void Task_809535C(void) { gPaletteFade.bufferTransferDisabled = TRUE; - sub_806AF4C(1, 0xFF, SetUpBattlePokemonMenu, 5); + sub_806AF4C(1, 0xFF, HandleBattlePartyMenu, 5); SetMainCallback2(Task_809538C); } @@ -572,8 +570,8 @@ static void Task_809538C(void) sub_806BF74(EWRAM_1B000.unk260, 0); GetMonNickname(&gPlayerParty[gUnknown_020384F0], gStringVar1); sub_8095050(EWRAM_1B000.unk260, gUnknown_020384F0); - SetTaskFuncWithFollowupFunc(EWRAM_1B000.unk260, Task_HandlePopupMenuInput, SetUpBattlePokemonMenu); - SetMainCallback2(sub_806AEDC); + SetTaskFuncWithFollowupFunc(EWRAM_1B000.unk260, Task_HandlePopupMenuInput, HandleBattlePartyMenu); + SetMainCallback2(CB2_PartyMenuMain); return; } } while (sub_80F9344() != 1); diff --git a/src/engine/sprite.c b/src/engine/sprite.c index 5700bc86b..5d394502a 100644 --- a/src/engine/sprite.c +++ b/src/engine/sprite.c @@ -916,7 +916,8 @@ void DestroySpriteAndFreeResources(struct Sprite *sprite) DestroySprite(sprite); } -void sub_800142C(u32 a1, u32 a2, const u16 *a3, u16 a4, u32 a5) +// Loads the mon name, level, and hp sprites into OAM. +void DrawPartyMenuMonText(u32 a1, u32 a2, const u16 *a3, u16 a4, u32 baseTileNumber) { const u16 *d = a3; struct OamData *oam = &gMain.oamBuffer[gMain.objCount]; @@ -925,7 +926,7 @@ void sub_800142C(u32 a1, u32 a2, const u16 *a3, u16 a4, u32 a5) u16 *x = (u16 *)oam; x[0] = (d[0] & sOamBitmasks[0]) | ((d[0] + a2) & sOamBitmasks[1]) | ((a4 & sOamBitmasks[2]) << 8); x[1] = (d[1] & sOamBitmasks[3]) | ((d[1] + a1) & sOamBitmasks[4]) | ((a4 & sOamBitmasks[5]) << 4); - x[2] = (d[2] & sOamBitmasks[6]) | ((d[2] + a5) & sOamBitmasks[7]) | (a4 & sOamBitmasks[8]); + x[2] = (d[2] & sOamBitmasks[6]) | ((d[2] + baseTileNumber) & sOamBitmasks[7]) | (a4 & sOamBitmasks[8]); oam++; gMain.objCount++; d += 3; diff --git a/src/field/choose_party.c b/src/field/choose_party.c index 2384f3c71..feceb930c 100644 --- a/src/field/choose_party.c +++ b/src/field/choose_party.c @@ -46,8 +46,6 @@ extern u8 sub_806BD58(u8, u8); extern void PartyMenuPrintMonsLevelOrStatus(void); extern void sub_806BC3C(u8, u8); extern u8 sub_806B58C(u8); -extern void sub_806AEDC(void); -extern void sub_806AF4C(); extern void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, void (*)(void), int); extern void CreateMonIcon_806D99C(int, u8, int, struct UnknownPokemonStruct2 *); extern u8 GetMonStatusAndPokerus(); @@ -76,14 +74,14 @@ void sub_8121E10(void) { ClearPartySelection(); ewram1B000.unk263 = 0; - OpenPartyMenu(4, 0); + OpenPartyMenu(PARTY_MENU_TYPE_BATTLE_TOWER, 0); } void sub_8121E34(void) { ClearPartySelection(); ewram1B000.unk263 = 1; - OpenPartyMenu(4, 0); + OpenPartyMenu(PARTY_MENU_TYPE_BATTLE_TOWER, 0); } static void ClearPartySelection(void) @@ -94,7 +92,7 @@ static void ClearPartySelection(void) gSelectedOrderFromParty[i] = 0; } -bool8 sub_8121E78(void) +bool8 SetupBattleTowerPartyMenu(void) { u8 i; @@ -298,7 +296,7 @@ static void sub_81221F8(u8 taskId) } } -void sub_81222B0(u8 taskId) +void HandleBattleTowerPartyMenu(u8 taskId) { if (!gPaletteFade.active) { @@ -427,7 +425,7 @@ static void sub_8122530(void) GetMonNickname(&gPlayerParty[gUnknown_020384F0], gStringVar1); gLastFieldPokeMenuOpened = gUnknown_020384F0; sub_81221F8(ewram1B000.unk260); - SetMainCallback2(sub_806AEDC); + SetMainCallback2(CB2_PartyMenuMain); break; } if (sub_80F9344() == 1) @@ -536,7 +534,7 @@ static void sub_81227FC(u8 taskId) MenuZeroFillWindowRect(20, 10, 29, 19); HandleDestroyMenuCursors(); sub_806D538(0, 0); - gTasks[taskId].func = sub_81222B0; + gTasks[taskId].func = HandleBattleTowerPartyMenu; } static void BattleTowerEntryMenuCallback_Exit(u8 taskId) @@ -545,7 +543,7 @@ static void BattleTowerEntryMenuCallback_Exit(u8 taskId) sub_81227FC(taskId); } -bool8 sub_8122854(void) +bool8 SetupLinkMultiBattlePartyMenu(void) { switch (ewram1B000_alt.unk264) { @@ -628,7 +626,7 @@ static void sub_81229B8(void) } } -void sub_8122A48(u8 taskId) +void HandleLinkMultiBattlePartyMenu(u8 taskId) { if (!gPaletteFade.active) { @@ -693,7 +691,7 @@ static void sub_8122C18(u8 taskId) } } -// Exactly the same as sub_8121E78 except for case 6 +// Exactly the same as SetupBattleTowerPartyMenu except for case 6 bool8 unref_sub_8122C60(void) { switch (ewram1B000_alt.unk264) @@ -795,7 +793,7 @@ static void sub_8122D94(u8 taskId) } } -void sub_8122E0C(u8 taskId) +void HandleDaycarePartyMenu(u8 taskId) { if (!gPaletteFade.active) { @@ -878,7 +876,7 @@ static void sub_8122F90(void) GetMonNickname(&gPlayerParty[gUnknown_020384F0], gStringVar1); gLastFieldPokeMenuOpened = gUnknown_020384F0; sub_8122D94(ewram1B000.unk260); - SetMainCallback2(sub_806AEDC); + SetMainCallback2(CB2_PartyMenuMain); break; } if (sub_80F9344() == 1) @@ -917,7 +915,7 @@ static void DaycareStorageMenuCallback_Exit(u8 taskId) MenuZeroFillWindowRect(20, 10, 29, 19); HandleDestroyMenuCursors(); sub_806D538(15, 0); - gTasks[taskId].func = sub_8122E0C; + gTasks[taskId].func = HandleDaycarePartyMenu; } void sub_8123138(u8 taskId) diff --git a/src/field/daycare.c b/src/field/daycare.c index 591b5b188..60cc61e40 100644 --- a/src/field/daycare.c +++ b/src/field/daycare.c @@ -1685,6 +1685,6 @@ void ShowDaycareLevelMenu(void) void ChooseSendDaycareMon(void) { - OpenPartyMenu(6, 0); + OpenPartyMenu(PARTY_MENU_TYPE_DAYCARE, 0); gMain.savedCallback = c2_exit_to_overworld_2_switch; } diff --git a/src/field/party_menu.c b/src/field/party_menu.c index d3e585fe2..2eb635f1e 100644 --- a/src/field/party_menu.c +++ b/src/field/party_menu.c @@ -50,18 +50,18 @@ struct PartyMenuWindowCoords u8 bottom; }; -struct UnknownStruct5 +struct PartyMonTextSettingsStruct { - u8 unk0; - u8 unk1; - const u16 *unk4; + u8 xOffset; + u8 yOffset; + const u16 *oamSettings; }; -struct PartyMenuFunctionsStruct +struct PartyMenuHandlersStruct { - /*0x0*/TaskFunc func1; - /*0x4*/bool8 (*func2)(void); - /*0x8*/u8 unk8; + /*0x0*/TaskFunc menuHandler; + /*0x4*/bool8 (*menuSetup)(void); + /*0x8*/u8 initialPromptTextId; // element in gUnknown_08376624 }; static void nullsub_12(u8 monIndex, struct Pokemon *pokemon); @@ -92,9 +92,9 @@ static u8 GetMonIconSpriteId_maybe(u8 taskId, u8 monIndex); static void SpriteCB_UpdateHeldItemIconPosition(struct Sprite *sprite); static void ItemUseMoveMenu_HandleMoveSelection(u8 taskId); static void ItemUseMoveMenu_HandleCancel(u8 taskId); -static bool8 sub_806AFD0(void); +static bool8 SetupDefaultPartyMenu(void); static void sub_806B4A8(void); -static void sub_806AF34(void); +static void VBlankCB_PartyMenu(void); static bool8 LoadPartyMenuGraphics(u8 a); static void sub_806BF24(const u8 *a, u8 monIndex, u8 c, u8 d); static void sub_806BB9C(u8 a); @@ -360,72 +360,78 @@ static const TaskFunc gUnknown_08376B54[] = { ItemUseMoveMenu_HandleCancel, }; -static const u16 Unknown_08376B5C[] = { - 0x4000, 0x4018, 0xF400, - 0x4000, 0x4038, 0xF404, - 0x4008, 0x4018, 0xF408, - 0x4008, 0x4038, 0xF40C, - 0x4010, 0x4020, 0xF410, - 0x4020, 0x4025, 0xF418, - 0x4020, 0x4045, 0xF41C, +#define PartyMonOAMSettings(x, y, palette, shape, size, priority, tileOffset) \ + ((shape) << 14) | (y), \ + ((size) << 14) | (x), \ + ((palette) << 12) | ((priority) << 10) | (tileOffset) + +static const u16 PartyMonOAMSettings_LeftColumn[] = { + PartyMonOAMSettings(24, 0, 15, ST_OAM_H_RECTANGLE, 1, 1, 0), + PartyMonOAMSettings(56, 0, 15, ST_OAM_H_RECTANGLE, 1, 1, 4), + PartyMonOAMSettings(24, 8, 15, ST_OAM_H_RECTANGLE, 1, 1, 8), + PartyMonOAMSettings(56, 8, 15, ST_OAM_H_RECTANGLE, 1, 1, 12), + PartyMonOAMSettings(32, 16, 15, ST_OAM_H_RECTANGLE, 1, 1, 16), + PartyMonOAMSettings(37, 32, 15, ST_OAM_H_RECTANGLE, 1, 1, 24), + PartyMonOAMSettings(69, 32, 15, ST_OAM_H_RECTANGLE, 1, 1, 28), 0xFFFF, }; -static const u16 Unknown_08376B88[] = { - 0x4000, 0x4018, 0xF400, - 0x4000, 0x4038, 0xF404, - 0x4008, 0x4018, 0xF408, - 0x4008, 0x4038, 0xF40C, - 0x4010, 0x4020, 0xF410, - 0x4010, 0x4065, 0xF418, - 0x4010, 0x4085, 0xF41C, +static const u16 PartyMonOAMSettings_RightColumn[] = { + PartyMonOAMSettings( 24, 0, 15, ST_OAM_H_RECTANGLE, 1, 1, 0), + PartyMonOAMSettings( 56, 0, 15, ST_OAM_H_RECTANGLE, 1, 1, 4), + PartyMonOAMSettings( 24, 8, 15, ST_OAM_H_RECTANGLE, 1, 1, 8), + PartyMonOAMSettings( 56, 8, 15, ST_OAM_H_RECTANGLE, 1, 1, 12), + PartyMonOAMSettings( 32, 16, 15, ST_OAM_H_RECTANGLE, 1, 1, 16), + PartyMonOAMSettings(101, 16, 15, ST_OAM_H_RECTANGLE, 1, 1, 24), + PartyMonOAMSettings(133, 16, 15, ST_OAM_H_RECTANGLE, 1, 1, 28), 0xFFFF, }; -static struct UnknownStruct5 const gUnknown_08376BB4[4][6] = { - { - { 1, 4, Unknown_08376B5C}, - {12, 1, Unknown_08376B88}, - {12, 4, Unknown_08376B88}, - {12, 7, Unknown_08376B88}, - {12, 10, Unknown_08376B88}, - {12, 13, Unknown_08376B88}, +// Controls where and how the mons' text appears in the party menu screen (nickname, HP, and level). +static struct PartyMonTextSettingsStruct const PartyMonTextSettings[4][6] = { + { // PARTY_MENU_LAYOUT_STANDARD + { 1, 4, PartyMonOAMSettings_LeftColumn}, + {12, 1, PartyMonOAMSettings_RightColumn}, + {12, 4, PartyMonOAMSettings_RightColumn}, + {12, 7, PartyMonOAMSettings_RightColumn}, + {12, 10, PartyMonOAMSettings_RightColumn}, + {12, 13, PartyMonOAMSettings_RightColumn}, }, - { - { 1, 2, Unknown_08376B5C}, - { 1, 9, Unknown_08376B5C}, - {12, 1, Unknown_08376B88}, - {12, 5, Unknown_08376B88}, - {12, 9, Unknown_08376B88}, - {12, 13, Unknown_08376B88}, + { // PARTY_MENU_LAYOUT_DOUBLE_BATTLE + { 1, 2, PartyMonOAMSettings_LeftColumn}, + { 1, 9, PartyMonOAMSettings_LeftColumn}, + {12, 1, PartyMonOAMSettings_RightColumn}, + {12, 5, PartyMonOAMSettings_RightColumn}, + {12, 9, PartyMonOAMSettings_RightColumn}, + {12, 13, PartyMonOAMSettings_RightColumn}, }, - { - { 1, 2, Unknown_08376B5C}, - { 1, 9, Unknown_08376B5C}, - {12, 2, Unknown_08376B88}, - {12, 5, Unknown_08376B88}, - {12, 9, Unknown_08376B88}, - {12, 12, Unknown_08376B88}, + { // PARTY_MENU_LAYOUT_LINK_DOUBLE_BATTLE + { 1, 2, PartyMonOAMSettings_LeftColumn}, + { 1, 9, PartyMonOAMSettings_LeftColumn}, + {12, 2, PartyMonOAMSettings_RightColumn}, + {12, 5, PartyMonOAMSettings_RightColumn}, + {12, 9, PartyMonOAMSettings_RightColumn}, + {12, 12, PartyMonOAMSettings_RightColumn}, }, - { - { 1, 2, Unknown_08376B5C}, - {12, 2, Unknown_08376B88}, - {12, 5, Unknown_08376B88}, - { 1, 9, Unknown_08376B5C}, - {12, 9, Unknown_08376B88}, - {12, 12, Unknown_08376B88}, + { // PARTY_MENU_LAYOUT_MULTI_BATTLE + { 1, 2, PartyMonOAMSettings_LeftColumn}, + {12, 2, PartyMonOAMSettings_RightColumn}, + {12, 5, PartyMonOAMSettings_RightColumn}, + { 1, 9, PartyMonOAMSettings_LeftColumn}, + {12, 9, PartyMonOAMSettings_RightColumn}, + {12, 12, PartyMonOAMSettings_RightColumn}, }, }; -static const struct PartyMenuFunctionsStruct gUnknown_08376C74[] = { - {sub_8089CD4, sub_806AFD0, 0}, - {SetUpBattlePokemonMenu, SetUpBattlePartyMenu, 0}, - {sub_80F9C6C, sub_80F9ACC, 0}, - {sub_80F9C6C, sub_806AFD0, 0}, - {sub_81222B0, sub_8121E78, 0}, - {sub_8122A48, sub_8122854, 0xFF}, - {sub_8122E0C, sub_806AFD0, 0x0F}, - {sub_80F9E64, sub_80F9CE8, 0}, +static const struct PartyMenuHandlersStruct PartyMenuHandlers[] = { + {HandleDefaultPartyMenu, SetupDefaultPartyMenu, 0}, // PARTY_MENU_TYPE_STANDARD + {HandleBattlePartyMenu, SetUpBattlePartyMenu, 0}, // PARTY_MENU_TYPE_BATTLE + {HandleSelectPartyMenu, SetupContestPartyMenu, 0}, // PARTY_MENU_TYPE_CONTEST + {HandleSelectPartyMenu, SetupDefaultPartyMenu, 0}, // PARTY_MENU_TYPE_IN_GAME_TRADE + {HandleBattleTowerPartyMenu, SetupBattleTowerPartyMenu, 0}, // PARTY_MENU_TYPE_BATTLE_TOWER + {HandleLinkMultiBattlePartyMenu, SetupLinkMultiBattlePartyMenu, 0xFF}, // PARTY_MENU_TYPE_LINK_MULTI_BATTLE + {HandleDaycarePartyMenu, SetupDefaultPartyMenu, 0x0F}, // PARTY_MENU_TYPE_DAYCARE + {HandleMoveTutorPartyMenu, SetupMoveTutorPartyMenu, 0}, // PARTY_MENU_TYPE_MOVE_TUTOR }; static const u16 gUnknown_08376CD4[] = { @@ -498,7 +504,7 @@ extern u8 gTileBuffer[]; extern u8 gUnknown_0202E8F4; extern u8 gUnknown_0202E8F6; extern u16 gUnknown_0202E8F8; -extern u8 gUnknown_0202E8FA; +extern u8 gPartyMenuType; extern u8 gLastFieldPokeMenuOpened; extern u8 gPlayerPartyCount; extern s32 gBattleMoveDamage; @@ -529,18 +535,25 @@ extern const u8 gStatusPal_Icons[]; #ifdef NONMATCHING -void sub_806AEDC(void) +// Main handler for the party menu. +void CB2_PartyMenuMain(void) { - const struct UnknownStruct5 *var1; + const struct PartyMonTextSettingsStruct *textSettings; s32 i; AnimateSprites(); BuildOamBuffer(); - var1 = gUnknown_08376BB4[gUnknown_0202E8FA]; - for (i = 0; i < 6; i++) + textSettings = PartyMonTextSettings[gPartyMenuType]; + for (i = 0; i < PARTY_SIZE; i++) { - sub_800142C(var1[i].unk0 * 8, var1[i].unk1 * 8, var1[i].unk4, 0, (i << 5) | 0x200); + // Draw mon name, level, and hp sprites + DrawPartyMenuMonText( + textSettings[i].xOffset * 8, + textSettings[i].yOffset * 8, + textSettings[i].oamSettings, + 0, + (i << 5) | 0x200); } RunTasks(); @@ -548,19 +561,19 @@ void sub_806AEDC(void) } #else __attribute__((naked)) -void sub_806AEDC(void) +void CB2_PartyMenuMain(void) { asm(".syntax unified\n\ push {r4-r6,lr}\n\ sub sp, 0x4\n\ bl AnimateSprites\n\ bl BuildOamBuffer\n\ - ldr r0, _0806AF2C @ =gUnknown_0202E8FA\n\ + ldr r0, _0806AF2C @ =gPartyMenuType\n\ ldrb r1, [r0]\n\ lsls r0, r1, 1\n\ adds r0, r1\n\ lsls r0, 4\n\ - ldr r1, _0806AF30 @ =gUnknown_08376BB4\n\ + ldr r1, _0806AF30 @ =PartyMonTextSettings\n\ adds r5, r0, r1\n\ movs r6, 0\n\ _0806AEF8:\n\ @@ -575,7 +588,7 @@ _0806AEF8:\n\ orrs r3, r4\n\ str r3, [sp]\n\ movs r3, 0\n\ - bl sub_800142C\n\ + bl DrawPartyMenuMonText\n\ adds r5, 0x8\n\ adds r6, 0x1\n\ cmp r6, 0x5\n\ @@ -587,13 +600,13 @@ _0806AEF8:\n\ pop {r0}\n\ bx r0\n\ .align 2, 0\n\ -_0806AF2C: .4byte gUnknown_0202E8FA\n\ -_0806AF30: .4byte gUnknown_08376BB4\n\ +_0806AF2C: .4byte gPartyMenuType\n\ +_0806AF30: .4byte PartyMonTextSettings\n\ .syntax divided\n"); } #endif // NONMATCHING -void sub_806AF34(void) +void VBlankCB_PartyMenu(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -601,11 +614,11 @@ void sub_806AF34(void) sub_806B548(); } -void sub_806AF4C(u8 a, u8 battleFlags, TaskFunc func, u8 d) +void sub_806AF4C(u8 a, u8 battleTypeFlags, TaskFunc func, u8 d) { - if (battleFlags != 0xFF) + if (battleTypeFlags != 0xFF) { - gBattleTypeFlags = battleFlags; + gBattleTypeFlags = battleTypeFlags; } ewram1B000.unk258 = a; @@ -619,12 +632,12 @@ void sub_806AF8C(u8 a, u8 battleFlags, TaskFunc func, u8 d) SetMainCallback2(sub_806B460); } -void OpenPartyMenu(u8 a, u8 battleFlags) +void OpenPartyMenu(u8 menuType, u8 battleFlags) { - sub_806AF8C(a, battleFlags, gUnknown_08376C74[a].func1, gUnknown_08376C74[a].unk8); + sub_806AF8C(menuType, battleFlags, PartyMenuHandlers[menuType].menuHandler, PartyMenuHandlers[menuType].initialPromptTextId); } -bool8 sub_806AFD0(void) +bool8 SetupDefaultPartyMenu(void) { switch (ewram1B000_alt.unk264) { @@ -790,7 +803,7 @@ bool8 InitPartyMenu(void) gMain.state++; break; case 12: - if (gUnknown_08376C74[ewram1B000.unk258].func2() == TRUE) + if (PartyMenuHandlers[ewram1B000.unk258].menuSetup() == TRUE) { gMain.state++; } @@ -815,7 +828,7 @@ bool8 InitPartyMenu(void) gMain.state++; break; case 17: - SetVBlankCallback(sub_806AF34); + SetVBlankCallback(VBlankCB_PartyMenu); return TRUE; } @@ -837,7 +850,7 @@ void sub_806B460(void) sub_806BF74(ewram1B000.unk260, 0); } - SetMainCallback2(sub_806AEDC); + SetMainCallback2(CB2_PartyMenuMain); } void sub_806B4A8(void) @@ -888,13 +901,13 @@ bool8 sub_806B58C(u8 a) const u8 *arr; if (!IsDoubleBattle()) - gUnknown_0202E8FA = 0; + gPartyMenuType = PARTY_MENU_LAYOUT_STANDARD; else if (IsLinkDoubleBattle() == TRUE) - gUnknown_0202E8FA = 2; + gPartyMenuType = PARTY_MENU_LAYOUT_LINK_DOUBLE_BATTLE; else - gUnknown_0202E8FA = 1; + gPartyMenuType = PARTY_MENU_LAYOUT_DOUBLE_BATTLE; - arr = &gUnknown_083769A8[gUnknown_0202E8FA * 12]; + arr = &gUnknown_083769A8[gPartyMenuType * 12]; switch (a) { @@ -1033,7 +1046,7 @@ bool8 sub_806B58C(u8 a) void sub_806B908(void) { memset(&gBGTilemapBuffers[2], 0, 0x800); - gUnknown_0202E8FA = 3; + gPartyMenuType = PARTY_MENU_LAYOUT_MULTI_BATTLE; sub_806B9A4(gUnknown_083769C0[12], gUnknown_083769C0[13], 3); if (GetMonData(&gPlayerParty[1], MON_DATA_SPECIES)) @@ -1059,7 +1072,7 @@ void sub_806B908(void) lsls r2, 4\n\ movs r1, 0\n\ bl memset\n\ - ldr r1, _0806B94C @ =gUnknown_0202E8FA\n\ + ldr r1, _0806B94C @ =gPartyMenuType\n\ movs r0, 0x3\n\ strb r0, [r1]\n\ ldr r0, _0806B950 @ =gUnknown_083769A8\n\ @@ -1083,7 +1096,7 @@ void sub_806B908(void) b _0806B964\n\ .align 2, 0\n\ _0806B948: .4byte gBGTilemapBuffers + 0x1000\n\ -_0806B94C: .4byte gUnknown_0202E8FA\n\ +_0806B94C: .4byte gPartyMenuType\n\ _0806B950: .4byte gUnknown_083769A8\n\ _0806B954: .4byte gPlayerParty + 1 * 0x64\n\ _0806B958:\n\ @@ -4828,18 +4841,18 @@ void Task_HandleItemUseMoveMenuInput(u8 taskId) } } -void DoPPRecoveryItemEffect(u8 taskId, u16 b, TaskFunc c) +void DoPPRecoveryItemEffect(u8 taskId, u16 item, TaskFunc c) { const u8 *itemEffect; u8 taskId2; - if (b == ITEM_ENIGMA_BERRY) + if (item == ITEM_ENIGMA_BERRY) itemEffect = gSaveBlock1.enigmaBerry.itemEffect; else - itemEffect = gItemEffectTable[b - ITEM_POTION]; + itemEffect = gItemEffectTable[item - ITEM_POTION]; gTasks[taskId].func = TaskDummy; taskId2 = CreateTask(TaskDummy, 5); - sub_806E8D0(taskId, b, c); + sub_806E8D0(taskId, item, c); if (!(itemEffect[4] & 0x10)) { gTasks[taskId2].data[11] = 0; @@ -4869,7 +4882,7 @@ void ItemUseMoveMenu_HandleCancel(u8 taskId) HandleDestroyMenuCursors(); MenuZeroFillWindowRect(19, 10, 29, 19); if (gMain.inBattle) - gTasks[ewram1C000.unk4].func = SetUpBattlePokemonMenu; + gTasks[ewram1C000.unk4].func = HandleBattlePartyMenu; else gTasks[ewram1C000.unk4].func = sub_808B0C0; sub_806D538(3, 0); diff --git a/src/pokemon/pokemon_menu.c b/src/pokemon/pokemon_menu.c index 5baf180a1..2c3d4b61d 100644 --- a/src/pokemon/pokemon_menu.c +++ b/src/pokemon/pokemon_menu.c @@ -183,7 +183,7 @@ static const struct PokeMenuFieldMoveFunc sFieldMoveFuncs[] = void sub_8089A70(void) { gPaletteFade.bufferTransferDisabled = 1; - OpenPartyMenu(0, 0); + OpenPartyMenu(PARTY_MENU_TYPE_STANDARD, 0); } static void sub_8089A8C(void) @@ -247,7 +247,7 @@ static void sub_8089C7C(u8 arg0) InitMenu(0, 20, r4, sPokeMenuOptionsNo, arg0, 9); } -void sub_8089CD4(u8 taskID) +void HandleDefaultPartyMenu(u8 taskID) { if (!gPaletteFade.active) { @@ -330,7 +330,7 @@ static void sub_8089EBC(void) sub_806BF74(EWRAM_1B000.unk260, 0); gLastFieldPokeMenuOpened = gUnknown_020384F0; sub_8089E84(); - SetMainCallback2(sub_806AEDC); + SetMainCallback2(CB2_PartyMenuMain); break; } } while (sub_80F9344() != TRUE); @@ -362,7 +362,7 @@ static void PokemonMenu_Summary(u8 taskID) void sub_808A004(u8 taskID) { - SetTaskFuncWithFollowupFunc(taskID, sub_806CA60, sub_8089CD4); + SetTaskFuncWithFollowupFunc(taskID, sub_806CA60, HandleDefaultPartyMenu); MenuZeroFillWindowRect(19, 0, 29, 19); } @@ -429,7 +429,7 @@ static void sub_808A1E0(u8 taskID) { SetHeldItemIconVisibility(taskID, sub_806CA38(taskID)); sub_806D538(0, 0); - gTasks[taskID].func = sub_8089CD4; + gTasks[taskID].func = HandleDefaultPartyMenu; } } @@ -444,7 +444,7 @@ static void sub_808A228(u8 taskID) { MenuZeroFillWindowRect(0, 0, 29, 19); sub_806D538(0, 0); - gTasks[taskID].func = sub_8089CD4; + gTasks[taskID].func = HandleDefaultPartyMenu; } } @@ -479,7 +479,7 @@ static void sub_808A358(void) { sub_806C994(EWRAM_1B000.unk260, gLastFieldPokeMenuOpened); sub_806BF74(EWRAM_1B000.unk260, 0); - SetMainCallback2(sub_806AEDC); + SetMainCallback2(CB2_PartyMenuMain); break; } if (sub_80F9344() == TRUE) @@ -497,7 +497,7 @@ static void sub_808A3A4(void) sub_806BF74(EWRAM_1B000.unk260, 0); EWRAM_1B000.unk262 = 3; sub_8089E84(); - SetMainCallback2(sub_806AEDC); + SetMainCallback2(CB2_PartyMenuMain); break; } if (sub_80F9344() == TRUE) @@ -543,7 +543,7 @@ static void sub_808A4D4(void) { sub_806C994(EWRAM_1B000.unk260, gLastFieldPokeMenuOpened); sub_806BF74(EWRAM_1B000.unk260, 0); - SetMainCallback2(sub_806AEDC); + SetMainCallback2(CB2_PartyMenuMain); break; } if (sub_80F9344() == TRUE) @@ -561,7 +561,7 @@ void sub_808A520(void) AddBagItem(GetMonData(&gPlayerParty[gLastFieldPokeMenuOpened], MON_DATA_HELD_ITEM), 1); TakeMailFromMon(&gPlayerParty[gLastFieldPokeMenuOpened]); SetMonData(&gPlayerParty[gLastFieldPokeMenuOpened], MON_DATA_HELD_ITEM, (void*) &gUnknown_0202E8F8); - sub_806AF4C(0, 0xFF, sub_8089CD4, 0); + sub_806AF4C(0, 0xFF, HandleDefaultPartyMenu, 0); } else sub_806AF4C(0, 0xFF, sub_808A5BC, 0xFF); @@ -681,7 +681,7 @@ static void sub_808A8D4(u8 taskID) sPokeMenuCursorPos = 0; MenuZeroFillWindowRect(19, 0, 29, 19); sub_806D538(0, 0); - gTasks[taskID].func = sub_8089CD4; + gTasks[taskID].func = HandleDefaultPartyMenu; } static void PokemonMenu_Cancel(u8 taskID) @@ -852,7 +852,7 @@ static void sub_808AD0C(void) { sub_806C994(EWRAM_1B000.unk260, gLastFieldPokeMenuOpened); sub_806BF74(EWRAM_1B000.unk260, 0); - SetMainCallback2(sub_806AEDC); + SetMainCallback2(CB2_PartyMenuMain); break; } if (sub_80F9344() == TRUE) @@ -863,7 +863,7 @@ static void sub_808AD0C(void) void sub_808AD58(void) { gPaletteFade.bufferTransferDisabled = 1; - sub_806AF4C(0, 0xFF, sub_8089CD4, 0); + sub_806AF4C(0, 0xFF, HandleDefaultPartyMenu, 0); SetMainCallback2(sub_808AD0C); } @@ -969,7 +969,7 @@ static void sub_808AF80(void) gLastFieldPokeMenuOpened = 0; sub_806C994(ewram1B000.unk260, gLastFieldPokeMenuOpened); sub_806BF74(ewram1B000.unk260, 0); - SetMainCallback2(sub_806AEDC); + SetMainCallback2(CB2_PartyMenuMain); break; } if (sub_80F9344() == TRUE) @@ -1107,7 +1107,7 @@ static void sub_808B3A0(void) { sub_806C994(EWRAM_1B000.unk260, gLastFieldPokeMenuOpened); sub_806BF74(EWRAM_1B000.unk260, 0); - SetMainCallback2(sub_806AEDC); + SetMainCallback2(CB2_PartyMenuMain); break; } if (sub_80F9344() == TRUE) @@ -1129,7 +1129,7 @@ static void sub_808B3EC(void) SetMonData(&gPlayerParty[gLastFieldPokeMenuOpened], MON_DATA_HELD_ITEM, (void*) &gUnknown_0202E8F8); CreateTask(sub_808B25C, 5); gPaletteFade.bufferTransferDisabled = 0; - callback = sub_806AEDC; + callback = CB2_PartyMenuMain; } else { @@ -1167,7 +1167,7 @@ static void sub_808B518(void) { sub_806C994(EWRAM_1B000.unk260, gUnknown_020384F0); sub_806BF74(EWRAM_1B000.unk260, 0); - SetMainCallback2(sub_806AEDC); + SetMainCallback2(CB2_PartyMenuMain); break; } if (sub_80F9344() == TRUE) diff --git a/src/script_pokemon_util_80F99CC.c b/src/script_pokemon_util_80F99CC.c index f930df8e2..73fafa184 100644 --- a/src/script_pokemon_util_80F99CC.c +++ b/src/script_pokemon_util_80F99CC.c @@ -31,8 +31,8 @@ void sub_80F99CC(void) u8 taskId; ScriptContext2_Enable(); - taskId = CreateTask((void *)sub_80F9A8C, 0xA); - gTasks[taskId].data[0] = 2; + taskId = CreateTask((void *)OpenPartyMenuFromScriptContext, 0xA); + gTasks[taskId].data[0] = PARTY_MENU_TYPE_CONTEST; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); } @@ -41,8 +41,8 @@ void sub_80F9A0C(void) u8 taskId; ScriptContext2_Enable(); - taskId = CreateTask((void *)sub_80F9A8C, 0xA); - gTasks[taskId].data[0] = 3; + taskId = CreateTask((void *)OpenPartyMenuFromScriptContext, 0xA); + gTasks[taskId].data[0] = PARTY_MENU_TYPE_IN_GAME_TRADE; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); } @@ -51,12 +51,12 @@ void sub_80F9A4C(void) u8 taskId; ScriptContext2_Enable(); - taskId = CreateTask((void *)sub_80F9A8C, 0xA); - gTasks[taskId].data[0] = 7; + taskId = CreateTask((void *)OpenPartyMenuFromScriptContext, 0xA); + gTasks[taskId].data[0] = PARTY_MENU_TYPE_MOVE_TUTOR; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); } -void sub_80F9A8C(u8 taskId) +void OpenPartyMenuFromScriptContext(u8 taskId) { if (!gPaletteFade.active) { @@ -66,7 +66,7 @@ void sub_80F9A8C(u8 taskId) } } -bool8 sub_80F9ACC(void) +bool8 SetupContestPartyMenu(void) { switch (EWRAM_1B000.unk264) { @@ -151,7 +151,7 @@ void sub_80F9C00(void) } } -void sub_80F9C6C(u8 var) +void HandleSelectPartyMenu(u8 var) { if (!gPaletteFade.active) { @@ -173,7 +173,7 @@ void sub_80F9C6C(u8 var) } } -bool8 sub_80F9CE8(void) // this is the same function as sub_80F9ACC except case 6 calls a different function. why +bool8 SetupMoveTutorPartyMenu(void) { switch (EWRAM_1B000.unk264) { @@ -250,7 +250,7 @@ void sub_80F9E1C(void) } } -void sub_80F9E64(u8 var) +void HandleMoveTutorPartyMenu(u8 var) { if (!gPaletteFade.active) { |