summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle/battle_2.c2
-rw-r--r--src/battle/battle_party_menu.c14
-rw-r--r--src/engine/sprite.c5
-rw-r--r--src/field/choose_party.c26
-rw-r--r--src/field/daycare.c2
-rw-r--r--src/field/party_menu.c209
-rw-r--r--src/pokemon/pokemon_menu.c34
-rw-r--r--src/script_pokemon_util_80F99CC.c22
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)
{