summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2017-10-10 19:21:23 -0700
committerMarcus Huderle <huderlem@gmail.com>2017-10-10 19:21:23 -0700
commit3a5020764fe3f26e8003487eff5d25b425a277a7 (patch)
tree0d002848b17576e0398b381b68c6e58c6ea183de
parentc5687e5324c243e5043b040bf9920ea39481adc3 (diff)
Add more party_menu documentation
-rw-r--r--include/party_menu.h33
-rw-r--r--include/pokemon_menu.h2
-rw-r--r--src/battle/battle_2.c14
-rw-r--r--src/battle/battle_party_menu.c29
-rw-r--r--src/field/choose_party.c40
-rw-r--r--src/field/fldeff_softboiled.c4
-rw-r--r--src/field/party_menu.c274
-rw-r--r--src/pokemon/pokemon_menu.c36
-rw-r--r--src/script_pokemon_util_80F99CC.c21
9 files changed, 213 insertions, 240 deletions
diff --git a/include/party_menu.h b/include/party_menu.h
index f480420a3..f13c2c2df 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -87,6 +87,20 @@ struct Unk2001000
u16 array[53561];
};
+struct UnknownPokemonStruct2
+{
+ /*0x00*/ u16 species;
+ /*0x02*/ u16 heldItem;
+ /*0x04*/ u8 nickname[11];
+ /*0x0F*/ u8 level;
+ /*0x10*/ u16 hp;
+ /*0x12*/ u16 maxhp;
+ /*0x14*/ u32 status;
+ /*0x18*/ u32 personality;
+ /*0x1C*/ u8 gender;
+ /*0x1D*/ u8 language;
+};
+
extern u8 ewram[];
#define ewram01000 (*(struct Unk2001000 *)(ewram + 0x01000))
#define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000))
@@ -94,25 +108,25 @@ extern u8 ewram[];
#define EWRAM_1B000 ewram1B000_alt
void CB2_PartyMenuMain(void);
-void sub_806C658(u8 taskId, s8 directionPressed);
+void ChangeBattleTowerPartyMenuSelection(u8 taskId, s8 directionPressed);
void SetPartyMenuSettings(u8 menuType, u8 battleTypeFlags, TaskFunc menuHandlerFunc, u8 textId);
void OpenPartyMenu(u8 menuType, u8 battleFlags);
bool8 InitPartyMenu(void);
bool8 IsLinkDoubleBattle(void);
-u8 sub_806B58C(u8);
+u8 DrawPartyMonBackground(u8);
void sub_806B908(void);
void sub_806BC3C(u8, u8);
void sub_806BCE8(void);
u8 sub_806BD58(u8, u8);
u8 sub_806BD58(u8, u8);
-u16 sub_806BD80(u8 taskId);
-u16 sub_806BE38(u8 taskId);
+u16 HandleDefaultPartyMenuInput(u8 taskId);
+u16 HandleBattleTowerPartyMenuInput(u8 taskId);
void task_pc_turn_off(const u8 *a, u8 b);
-void sub_806BF74(u8 taskId, s8 directionPressed);
-void sub_806C890(u8 taskId);
+void ChangePartyMenuSelection(u8 taskId, s8 directionPressed);
+void SelectBattleTowerOKButton(u8 taskId);
void sub_806C994(u8 taskId, u8 b);
u8 sub_806CA38(u8 taskID);
-void sub_806CB74(u8 taskId);
+void HandlePartyMenuSwitchPokemonInput(u8 taskId);
void sub_806CCE4(void);
void sub_806CD44(u8 taskId);
void sub_806D3B4(u8 taskId, u16 species1, u16 species2);
@@ -125,7 +139,7 @@ void CreatePartyMenuMonIcon(u8 taskId, u8 monIndex, u8 c, struct Pokemon *pokemo
void TryCreatePartyMenuMonIcon(u8 a, u8 monIndex, struct Pokemon *pokemon);
void LoadHeldItemIconGraphics(void);
void PartyMenuTryGiveMonHeldItem(u8 taskId, u16 newItem, TaskFunc c);
-void SetMonIconSpriteId_maybe(u8 taskId, u8 monIndex, u8 spriteId);
+void SetMonIconSpriteId(u8 taskId, u8 monIndex, u8 spriteId);
void CreateHeldItemIcon_806DCD4(u8 taskId, u8 monIndex, u16 item);
void CreateHeldItemIcons_806DC34(u8 taskId);
void CreateHeldItemIcons(u8 *a, u8 *b, u8 c);
@@ -133,6 +147,7 @@ void SetHeldItemIconVisibility(u8 a, u8 monIndex);
void PartyMenuDoPrintMonNickname(u8 monIndex, int b, const u8 *nameBuffer);
void PrintPartyMenuMonNickname(u8 monIndex, u8 b, struct Pokemon *pokemon);
void PrintPartyMenuMonNicknames(void);
+void CreateMonIcon_LinkMultiBattle(u8 taskId, u8 monIndex, u8 menuType, struct UnknownPokemonStruct2 *pokemon);
u8 *GetMonNickname(struct Pokemon *pokemon, u8 *stringBuffer);
void PartyMenuPutStatusTilemap(u8 monIndex, u8 b, u8 status);
void PartyMenuDoPrintLevel(u8 monIndex, u8 b, u8 level);
@@ -199,7 +214,7 @@ void Task_RareCandy3(u8);
void TeachMonMoveInPartyMenu(u8);
void DoEvolutionStoneItemEffect(u8 taskId, u16 evolutionStoneItem, TaskFunc c);
u8 GetItemEffectType(u16 item);
-void sub_806CA60(u8 taskId);
+void SetupDefaultPartyMenuSwitchPokemon(u8 taskId);
void sub_806CD5C(u8 taskId);
void DoTakeMail(u8 taskId, TaskFunc func);
void PartyMenuTryGiveMonHeldItem_806ECE8(u8 taskId, TaskFunc func);
diff --git a/include/pokemon_menu.h b/include/pokemon_menu.h
index 9566a7173..57a313d89 100644
--- a/include/pokemon_menu.h
+++ b/include/pokemon_menu.h
@@ -40,7 +40,7 @@ void HandleDefaultPartyMenu(u8 taskID);
void sub_808B5B4(u32 taskID);
void sub_8089A70(void);
void sub_8089C50(u8 arg0, u8 arg1, u8 arg2, u8 noOfOptions, const struct MenuAction2 *menuActions, const u8 *order);
-void sub_808A004(u8 taskID);
+void DoPokemonMenu_Switch(u8 taskID);
void FieldCallback_Teleport(void);
void sub_808AD58(void);
void sub_808B020(void);
diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c
index 75358e636..a447cf498 100644
--- a/src/battle/battle_2.c
+++ b/src/battle/battle_2.c
@@ -53,20 +53,6 @@ struct UnknownStruct8
u8 unk1A;
};
-struct UnknownPokemonStruct2
-{
- /*0x00*/ u16 species;
- /*0x02*/ u16 heldItem;
- /*0x04*/ u8 nickname[11];
- /*0x0F*/ u8 level;
- /*0x10*/ u16 hp;
- /*0x12*/ u16 maxhp;
- /*0x14*/ u32 status;
- /*0x18*/ u32 personality;
- /*0x1C*/ u8 gender;
- /*0x1D*/ u8 language;
-};
-
struct UnknownStruct12
{
u32 unk0;
diff --git a/src/battle/battle_party_menu.c b/src/battle/battle_party_menu.c
index 961be6d02..2f6dc6816 100644
--- a/src/battle/battle_party_menu.c
+++ b/src/battle/battle_party_menu.c
@@ -25,7 +25,6 @@ extern u8 ewram[];
extern u8 sub_806BD58(u8, u8);
extern void PartyMenuPrintMonsLevelOrStatus(void);
extern void nullsub_13(void);
-extern u8 sub_806B58C(u8);
extern void sub_802E414(void);
extern void sub_80A6DCC(void);
extern u8 *sub_8040D08();
@@ -418,7 +417,7 @@ bool8 SetUpBattlePartyMenu(void)
EWRAM_1B000.setupState++;
break;
case 9:
- if (sub_806B58C(EWRAM_1B000.monIndex) == 1)
+ if (DrawPartyMonBackground(EWRAM_1B000.monIndex) == 1)
{
EWRAM_1B000.monIndex = 0;
EWRAM_1B000.setupState++;
@@ -463,38 +462,38 @@ static void sub_8095050(u8 a, u8 b)
ShowPartyPopupMenu(gTasks[a].data[4], sBattlePartyPopupMenus, sBattlePartyMenuActions, 0);
}
-void HandleBattlePartyMenu(u8 a)
+void HandleBattlePartyMenu(u8 taskId)
{
if (!gPaletteFade.active)
{
if (gUnknown_02038473 == 3 && GetItemEffectType(gScriptItemId) == 10)
{
- gUnknown_03004AE4(a, gScriptItemId, Task_80952E4);
+ gUnknown_03004AE4(taskId, gScriptItemId, Task_80952E4);
return;
}
- switch (sub_806BD80(a))
+ switch (HandleDefaultPartyMenuInput(taskId))
{
- case 1:
+ case A_BUTTON:
if (gUnknown_02038473 == 3)
{
- if (GetMonData(&gPlayerParty[sub_806CA38(a)], MON_DATA_IS_EGG))
+ if (GetMonData(&gPlayerParty[sub_806CA38(taskId)], MON_DATA_IS_EGG))
PlaySE(SE_HAZURE);
else
{
sub_806D5A4();
- gUnknown_03004AE4(a, gScriptItemId, Task_80952E4);
+ gUnknown_03004AE4(taskId, gScriptItemId, Task_80952E4);
}
}
else
{
PlaySE(SE_SELECT);
- GetMonNickname(&gPlayerParty[sub_806CA38(a)], gStringVar1);
- sub_8095050(a, sub_806CA38(a));
- SetTaskFuncWithFollowupFunc(a, Task_HandlePopupMenuInput, HandleBattlePartyMenu);
+ GetMonNickname(&gPlayerParty[sub_806CA38(taskId)], gStringVar1);
+ sub_8095050(taskId, sub_806CA38(taskId));
+ SetTaskFuncWithFollowupFunc(taskId, Task_HandlePopupMenuInput, HandleBattlePartyMenu);
}
break;
- case 2:
+ case B_BUTTON:
if (gUnknown_02038473 == 1)
PlaySE(SE_HAZURE);
else
@@ -503,12 +502,12 @@ void HandleBattlePartyMenu(u8 a)
if (gUnknown_02038473 == 3)
{
gUnknown_0202E8F4 = 0;
- gTasks[a].func = Task_80952E4;
+ gTasks[taskId].func = Task_80952E4;
}
else
{
gUnknown_0202E8F4 = 0;
- gTasks[a].func = Task_809527C;
+ gTasks[taskId].func = Task_809527C;
}
}
break;
@@ -567,7 +566,7 @@ static void Task_809538C(void)
if (InitPartyMenu() == TRUE)
{
sub_806C994(EWRAM_1B000.menuHandlerTaskId, gUnknown_020384F0);
- sub_806BF74(EWRAM_1B000.menuHandlerTaskId, 0);
+ ChangePartyMenuSelection(EWRAM_1B000.menuHandlerTaskId, 0);
GetMonNickname(&gPlayerParty[gUnknown_020384F0], gStringVar1);
sub_8095050(EWRAM_1B000.menuHandlerTaskId, gUnknown_020384F0);
SetTaskFuncWithFollowupFunc(EWRAM_1B000.menuHandlerTaskId, Task_HandlePopupMenuInput, HandleBattlePartyMenu);
diff --git a/src/field/choose_party.c b/src/field/choose_party.c
index 2b5407753..f35dcdf56 100644
--- a/src/field/choose_party.c
+++ b/src/field/choose_party.c
@@ -18,20 +18,6 @@
#include "task.h"
#include "text.h"
-struct UnknownPokemonStruct2
-{
- /*0x00*/ u16 species;
- /*0x02*/ u16 heldItem;
- /*0x04*/ u8 nickname[11];
- /*0x0F*/ u8 level;
- /*0x10*/ u16 hp;
- /*0x12*/ u16 maxhp;
- /*0x14*/ u32 status;
- /*0x18*/ u32 personality;
- /*0x1C*/ u8 gender;
- /*0x1D*/ u8 language;
-};
-
extern u8 gPlayerPartyCount;
extern u8 gLastFieldPokeMenuOpened;
extern u8 gUnknown_020384F0;
@@ -45,9 +31,7 @@ EWRAM_DATA u8 gSelectedOrderFromParty[3] = {0};
extern u8 sub_806BD58(u8, u8);
extern void PartyMenuPrintMonsLevelOrStatus(void);
extern void sub_806BC3C(u8, u8);
-extern u8 sub_806B58C(u8);
extern void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, void (*)(void), int);
-extern void CreateMonIcon_806D99C(int, u8, int, struct UnknownPokemonStruct2 *);
extern u8 GetMonStatusAndPokerus();
extern void PartyMenuPrintHP();
extern bool8 sub_80F9344(void);
@@ -161,7 +145,7 @@ bool8 SetupBattleTowerPartyMenu(void)
ewram1B000_alt.setupState++;
break;
case 7:
- if (sub_806B58C(ewram1B000_alt.monIndex) == 1)
+ if (DrawPartyMonBackground(ewram1B000_alt.monIndex) == 1)
{
ewram1B000_alt.monIndex = 0;
ewram1B000_alt.setupState = 0;
@@ -300,9 +284,9 @@ void HandleBattleTowerPartyMenu(u8 taskId)
{
if (!gPaletteFade.active)
{
- switch (sub_806BE38(taskId))
+ switch (HandleBattleTowerPartyMenuInput(taskId))
{
- case 1:
+ case A_BUTTON:
PlaySE(SE_SELECT);
gLastFieldPokeMenuOpened = sub_806CA38(taskId);
if (gLastFieldPokeMenuOpened != 6)
@@ -317,7 +301,7 @@ void HandleBattleTowerPartyMenu(u8 taskId)
}
sub_808B5B4(taskId);
break;
- case 2:
+ case B_BUTTON:
PlaySE(SE_SELECT);
ClearPartySelection();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
@@ -421,7 +405,7 @@ static void sub_8122530(void)
if (InitPartyMenu() == TRUE)
{
sub_806C994(ewram1B000.menuHandlerTaskId, gUnknown_020384F0);
- sub_806C658(ewram1B000.menuHandlerTaskId, 0);
+ ChangeBattleTowerPartyMenuSelection(ewram1B000.menuHandlerTaskId, 0);
GetMonNickname(&gPlayerParty[gUnknown_020384F0], gStringVar1);
gLastFieldPokeMenuOpened = gUnknown_020384F0;
sub_81221F8(ewram1B000.menuHandlerTaskId);
@@ -471,7 +455,7 @@ static void BattleTowerEntryMenuCallback_Enter(u8 taskId)
gSelectedOrderFromParty[i] = gLastFieldPokeMenuOpened + 1;
sub_806BC3C(gLastFieldPokeMenuOpened, i * 14 + 0x1C);
if (i == 2)
- sub_806C890(taskId);
+ SelectBattleTowerOKButton(taskId);
BattleTowerEntryMenuCallback_Exit(taskId);
return;
}
@@ -580,7 +564,7 @@ static void sub_81228E8(u8 a)
CreatePartyMenuMonIcon(a, i, 3, &gPlayerParty[i]);
if (gUnknown_02023A00[i].species != 0)
{
- CreateMonIcon_806D99C(a, i + 3, 3, &gUnknown_02023A00[i]);
+ CreateMonIcon_LinkMultiBattle(a, i + 3, 3, &gUnknown_02023A00[i]);
sub_806D50C(a, i + 3);
}
}
@@ -740,7 +724,7 @@ bool8 unref_sub_8122C60(void)
ewram1B000_alt.setupState++;
break;
case 7:
- if (sub_806B58C(ewram1B000_alt.monIndex) == 1)
+ if (DrawPartyMonBackground(ewram1B000_alt.monIndex) == 1)
{
ewram1B000_alt.monIndex = 0;
ewram1B000_alt.setupState = 0;
@@ -797,16 +781,16 @@ void HandleDaycarePartyMenu(u8 taskId)
{
if (!gPaletteFade.active)
{
- switch (sub_806BD80(taskId))
+ switch (HandleDefaultPartyMenuInput(taskId))
{
- case 1:
+ case A_BUTTON:
PlaySE(SE_SELECT);
gLastFieldPokeMenuOpened = sub_806CA38(taskId);
GetMonNickname(&gPlayerParty[gLastFieldPokeMenuOpened], gStringVar1);
sub_8122D94(taskId);
gTasks[taskId].func = Task_DaycareStorageMenu8122EAC;
break;
- case 2:
+ case B_BUTTON:
PlaySE(SE_SELECT);
gLastFieldPokeMenuOpened = 0xFF;
gSpecialVar_0x8004 = 0xFF;
@@ -872,7 +856,7 @@ static void sub_8122F90(void)
if (InitPartyMenu() == TRUE)
{
sub_806C994(ewram1B000.menuHandlerTaskId, gUnknown_020384F0);
- sub_806BF74(ewram1B000.menuHandlerTaskId, 0);
+ ChangePartyMenuSelection(ewram1B000.menuHandlerTaskId, 0);
GetMonNickname(&gPlayerParty[gUnknown_020384F0], gStringVar1);
gLastFieldPokeMenuOpened = gUnknown_020384F0;
sub_8122D94(ewram1B000.menuHandlerTaskId);
diff --git a/src/field/fldeff_softboiled.c b/src/field/fldeff_softboiled.c
index d4a757145..22f9c13f5 100644
--- a/src/field/fldeff_softboiled.c
+++ b/src/field/fldeff_softboiled.c
@@ -75,7 +75,7 @@ bool8 SetUpFieldMove_SoftBoiled(void) {
void sub_8133D28(u8 taskid) {
EWRAM_1000.unkC = sub_8133D50;
EWRAM_1B000_2.unk272 = 3;
- sub_808A004(taskid);
+ DoPokemonMenu_Switch(taskid);
}
static void sub_8133D50(u8 taskId) {
@@ -133,7 +133,7 @@ static void sub_8133E74(u8 taskId) {
MenuZeroFillWindowRect(WINDOW_LEFT, 14, WINDOW_RIGHT, 19);
PrintPartyMenuPromptText(3, 0);
- gTasks[taskId].func = sub_806CB74;
+ gTasks[taskId].func = HandlePartyMenuSwitchPokemonInput;
}
static void sub_8133EB8(u8 taskId) {
diff --git a/src/field/party_menu.c b/src/field/party_menu.c
index 834a5b09d..86ad9ecc9 100644
--- a/src/field/party_menu.c
+++ b/src/field/party_menu.c
@@ -61,7 +61,7 @@ struct PartyMenuHandlersStruct
{
/*0x0*/TaskFunc menuHandler;
/*0x4*/bool8 (*menuSetup)(void);
- /*0x8*/u8 initialPromptTextId; // element in gUnknown_08376624
+ /*0x8*/u8 initialPromptTextId; // element in PartyMenuPromptTexts
};
static void nullsub_12(u8 monIndex, struct Pokemon *pokemon);
@@ -76,19 +76,19 @@ static void sub_806D5B8(u8 taskId);
static void sub_806D014(u8 taskId);
static void sub_806D118(u8 taskId);
static void CB2_InitPartyMenu(void);
-static void DrawPartyMonBackgrounds(void);
+static void ReDrawPartyMonBackgrounds(void);
static void sub_806BA94(s16 a, u16 b, u8 c, u8 d);
static void sub_806B9A4(s16 a, u16 b, u8 c);
static void sub_806CA18(u8 taskId, u8 b);
-static void sub_806C310(u8 spriteId, u8 menuIndex, s8 directionPressed);
-static void sub_806C1E4(u8 spriteId, u8 menuIndex, s8 directionPressed);
-static void sub_806C490(u8 spriteId, u8 menuIndex, s8 directionPressed);
+static void ChangeDoubleBattlePartyMenuSelection(u8 spriteId, u8 menuIndex, s8 directionPressed);
+static void ChangeDefaultPartyMenuSelection(u8 spriteId, u8 menuIndex, s8 directionPressed);
+static void ChangeLinkDoubleBattlePartyMenuSelection(u8 spriteId, u8 menuIndex, s8 directionPressed);
static void UpdateMonIconFrame_806DA0C(struct Sprite *sprite);
static void UpdateMonIconFrame_806DA38(struct Sprite *sprite);
static void UpdateMonIconFrame_806DA44(u8 taskId, u8 monIndex, u8 c);
static u8 sub_806CA00(u8 taskId);
static void SpriteCB_sub_806D37C(struct Sprite *sprite);
-static u8 GetMonIconSpriteId_maybe(u8 taskId, u8 monIndex);
+static u8 GetMonIconSpriteId(u8 taskId, u8 monIndex);
static void SpriteCB_UpdateHeldItemIconPosition(struct Sprite *sprite);
static void ItemUseMoveMenu_HandleMoveSelection(u8 taskId);
static void ItemUseMoveMenu_HandleCancel(u8 taskId);
@@ -221,7 +221,8 @@ static const struct SpriteTemplate gSpriteTemplate_837660C = {
SpriteCB_UpdateHeldItemIconPosition
};
-static const u8 *const gUnknown_08376624[] = {
+// Texts that can be displayed in the bottom of the party menu.
+static const u8 *const PartyMenuPromptTexts[] = {
OtherText_ChoosePoke,
OtherText_MovePokeTo,
OtherText_TeachWhat,
@@ -482,20 +483,6 @@ struct Unk201FE00
u8 unkE02;
};
-struct UnknownPokemonStruct2
-{
- /*0x00*/ u16 species;
- /*0x02*/ u16 heldItem;
- /*0x04*/ u8 nickname[11];
- /*0x0F*/ u8 level;
- /*0x10*/ u16 hp;
- /*0x12*/ u16 maxhp;
- /*0x14*/ u32 status;
- /*0x18*/ u32 personality;
- /*0x1C*/ u8 gender;
- /*0x1D*/ u8 language;
-};
-
#define ewram1C000 (*(struct Unk201C000 *)(ewram + 0x1C000))
#define ewram1FE00 (*(struct Unk201FE00 *)(ewram + 0x1FE00))
@@ -611,7 +598,7 @@ void VBlankCB_PartyMenu(void)
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- DrawPartyMonBackgrounds();
+ ReDrawPartyMonBackgrounds();
}
void SetPartyMenuSettings(u8 menuType, u8 battleTypeFlags, TaskFunc menuHandlerFunc, u8 textId)
@@ -693,7 +680,7 @@ bool8 SetupDefaultPartyMenu(void)
ewram1B000_alt.setupState++;
break;
case 9:
- if (sub_806B58C(ewram1B000_alt.monIndex) == 1)
+ if (DrawPartyMonBackground(ewram1B000_alt.monIndex) == 1)
{
ewram1B000_alt.monIndex = 0;
ewram1B000_alt.setupState = 0;
@@ -845,7 +832,7 @@ void CB2_InitPartyMenu(void)
if (ewram1B000.menuType != PARTY_MENU_TYPE_LINK_MULTI_BATTLE)
{
- sub_806BF74(ewram1B000.menuHandlerTaskId, 0);
+ ChangePartyMenuSelection(ewram1B000.menuHandlerTaskId, 0);
}
SetMainCallback2(CB2_PartyMenuMain);
@@ -880,7 +867,7 @@ bool8 IsLinkDoubleBattle()
}
// Draws the blue rectangular regions surrounding each of the party mons.
-void DrawPartyMonBackgrounds(void)
+void ReDrawPartyMonBackgrounds(void)
{
if (ewram1B000.unk261)
{
@@ -895,7 +882,7 @@ void DrawPartyMonBackgrounds(void)
}
}
-bool8 sub_806B58C(u8 monIndex)
+bool8 DrawPartyMonBackground(u8 monIndex)
{
const u8 *arr;
@@ -1364,6 +1351,7 @@ void unref_sub_806BCB8(u8 a)
}
}
+// This is ultimately unreferenced, since it's caller is unreferenced.
void sub_806BCE8()
{
u8 i;
@@ -1401,23 +1389,23 @@ u8 sub_806BD58(u8 taskId, u8 b)
}
#ifdef NONMATCHING
-u16 sub_806BD80(u8 taskId)
+u16 HandleDefaultPartyMenuInput(u8 taskId)
{
s8 menuDirectionPressed = 0x0;
switch (gMain.newAndRepeatedKeys)
{
case DPAD_UP:
- menuDirectionPressed = 0xFF;
+ menuDirectionPressed = -1;
break;
case DPAD_DOWN:
- menuDirectionPressed = 0x1;
+ menuDirectionPressed = 1;
break;
case DPAD_LEFT:
- menuDirectionPressed = 0xFE;
+ menuDirectionPressed = -2;
break;
case DPAD_RIGHT:
- menuDirectionPressed = 0x2;
+ menuDirectionPressed = 2;
break;
}
@@ -1427,10 +1415,10 @@ u16 sub_806BD80(u8 taskId)
switch (var1)
{
case 1:
- menuDirectionPressed = 0xFF;
+ menuDirectionPressed = -1;
break;
case 2:
- menuDirectionPressed = 0x1;
+ menuDirectionPressed = 1;
break;
}
@@ -1448,12 +1436,12 @@ u16 sub_806BD80(u8 taskId)
}
}
- sub_806BF74(taskId, menuDirectionPressed);
+ ChangePartyMenuSelection(taskId, menuDirectionPressed);
return gMain.newAndRepeatedKeys;
}
#else
__attribute__((naked))
-u16 sub_806BD80(u8 taskId)
+u16 HandleDefaultPartyMenuInput(u8 taskId)
{
asm(".syntax unified\n\
push {r4,r5,lr}\n\
@@ -1512,7 +1500,7 @@ _0806BDD6:\n\
_0806BDDC:\n\
asrs r1, r0, 24\n\
adds r0, r5, 0\n\
- bl sub_806BF74\n\
+ bl ChangePartyMenuSelection\n\
ldr r0, _0806BDEC @ =gMain\n\
ldrh r0, [r0, 0x30]\n\
b _0806BE2C\n\
@@ -1558,7 +1546,7 @@ _0806BE34: .4byte gMain\n\
}
#endif // NONMATCHING
-u16 sub_806BE38(u8 taskId)
+u16 HandleBattleTowerPartyMenuInput(u8 taskId)
{
u8 menuDirectionPressed = 0x0;
@@ -1594,7 +1582,7 @@ u16 sub_806BE38(u8 taskId)
if (gMain.newKeys & START_BUTTON)
{
- sub_806C890(taskId);
+ SelectBattleTowerOKButton(taskId);
return START_BUTTON;
}
else
@@ -1602,7 +1590,7 @@ u16 sub_806BE38(u8 taskId)
s8 signedMenuDirection = menuDirectionPressed;
if (signedMenuDirection)
{
- sub_806C658(taskId, signedMenuDirection);
+ ChangeBattleTowerPartyMenuSelection(taskId, signedMenuDirection);
return gMain.newAndRepeatedKeys;
}
else
@@ -1639,7 +1627,7 @@ void sub_806BF24(const u8 *a, u8 monIndex, u8 c, u8 d)
task_pc_turn_off(a, c);
}
-void sub_806BF74(u8 taskId, s8 directionPressed)
+void ChangePartyMenuSelection(u8 taskId, s8 directionPressed)
{
bool8 isLinkDoubleBattle;
u8 spriteId = sub_806CA00(taskId);
@@ -1657,7 +1645,7 @@ void sub_806BF74(u8 taskId, s8 directionPressed)
if (menuIndex == 7)
sub_806BBEC(1);
- sub_806C490(spriteId, menuIndex, directionPressed);
+ ChangeLinkDoubleBattlePartyMenuSelection(spriteId, menuIndex, directionPressed);
if (gSprites[spriteId].data0 == 0 || gSprites[spriteId].data0 == 2 || gSprites[spriteId].data0 == 3)
sub_806BF24(&gUnknown_083769C0[gSprites[spriteId].data0 * 2], gSprites[spriteId].data0, 3, 1);
@@ -1675,7 +1663,7 @@ void sub_806BF74(u8 taskId, s8 directionPressed)
{
u8 isDoubleBattle = IsDoubleBattle();
- if (menuIndex <= PARTY_SIZE - 1)
+ if (menuIndex < PARTY_SIZE)
{
sub_806BF24(&gUnknown_083769A8[isDoubleBattle * 12 + menuIndex * 2], menuIndex, 3, 0);
}
@@ -1686,14 +1674,14 @@ void sub_806BF74(u8 taskId, s8 directionPressed)
if (!isDoubleBattle)
{
- sub_806C1E4(spriteId, menuIndex, directionPressed);
+ ChangeDefaultPartyMenuSelection(spriteId, menuIndex, directionPressed);
}
else
{
- sub_806C310(spriteId, menuIndex, directionPressed);
+ ChangeDoubleBattlePartyMenuSelection(spriteId, menuIndex, directionPressed);
}
- if (gSprites[spriteId].data0 <= PARTY_SIZE - 1)
+ if (gSprites[spriteId].data0 < PARTY_SIZE)
{
sub_806BF24(&gUnknown_083769A8[isDoubleBattle * 12 + gSprites[spriteId].data0 * 2], gSprites[spriteId].data0, 3, 1);
}
@@ -1716,17 +1704,17 @@ void sub_806BF74(u8 taskId, s8 directionPressed)
}
}
-void sub_806C1E4(u8 spriteId, u8 menuIndex, s8 directionPressed)
+void ChangeDefaultPartyMenuSelection(u8 spriteId, u8 menuIndex, s8 directionPressed)
{
- u8 var1;
+ u8 nextIndex;
s8 menuMovement = directionPressed + 2;
switch (menuMovement)
{
- case 2:
+ case 2: // no movement
gSprites[spriteId].data1 = 0;
break;
- case 1:
+ case 1: // moving up
if (menuIndex == 0) {
gSprites[spriteId].data0 = 7;
} else if (menuIndex == 7) {
@@ -1738,7 +1726,7 @@ void sub_806C1E4(u8 spriteId, u8 menuIndex, s8 directionPressed)
gSprites[spriteId].data1 = 0;
break;
- case 3:
+ case 3: // moving down
if (menuIndex == gPlayerPartyCount - 1) {
gSprites[spriteId].data0 = 7;
} else if (menuIndex == 7) {
@@ -1750,7 +1738,7 @@ void sub_806C1E4(u8 spriteId, u8 menuIndex, s8 directionPressed)
gSprites[spriteId].data1 = 0;
break;
- case 4:
+ case 4: // moving right
if (gPlayerPartyCount > 1 && menuIndex == 0)
{
if (gSprites[spriteId].data1 == 0)
@@ -1759,9 +1747,10 @@ void sub_806C1E4(u8 spriteId, u8 menuIndex, s8 directionPressed)
gSprites[spriteId].data0 = gSprites[spriteId].data1;
}
break;
- case 0:
- var1 = menuIndex - 1;
- if (var1 <= 4) {
+ case 0: // moving left
+ // Only move the selection to the left side if one of the mons in the right-hand column are currently selected
+ nextIndex = menuIndex - 1;
+ if (nextIndex <= 4) {
gSprites[spriteId].data0 = 0;
gSprites[spriteId].data1 = menuIndex;
}
@@ -1769,17 +1758,17 @@ void sub_806C1E4(u8 spriteId, u8 menuIndex, s8 directionPressed)
}
}
-void sub_806C310(u8 spriteId, u8 menuIndex, s8 directionPressed)
+void ChangeDoubleBattlePartyMenuSelection(u8 spriteId, u8 menuIndex, s8 directionPressed)
{
- u8 var3;
+ u8 var1;
s8 menuMovement = directionPressed + 2;
switch(menuMovement)
{
- case 2:
+ case 2: // no movement
gSprites[spriteId].data1 = 0;
break;
- case 3:
+ case 3: // moving down
if (menuIndex == 7) {
gSprites[spriteId].data0 = 0;
} else if (menuIndex == gPlayerPartyCount - 1) {
@@ -1791,7 +1780,7 @@ void sub_806C310(u8 spriteId, u8 menuIndex, s8 directionPressed)
gSprites[spriteId].data1 = 0;
break;
- case 1:
+ case 1: // moving up
if (menuIndex == 0) {
gSprites[spriteId].data0 = 7;
} else if (menuIndex == 7) {
@@ -1803,7 +1792,7 @@ void sub_806C310(u8 spriteId, u8 menuIndex, s8 directionPressed)
gSprites[spriteId].data1 = 0;
break;
- case 4:
+ case 4: // moving right
if (menuIndex == 0) {
if (gPlayerPartyCount > 2) {
u16 var1 = gSprites[spriteId].data1 - 2;
@@ -1823,9 +1812,9 @@ void sub_806C310(u8 spriteId, u8 menuIndex, s8 directionPressed)
}
}
break;
- case 0:
- var3 = menuIndex - 2;
- if (var3 <= 1) {
+ case 0: // moving left
+ var1 = menuIndex - 2;
+ if (var1 <= 1) {
gSprites[spriteId].data0 = 0;
gSprites[spriteId].data1 = menuIndex;
} else {
@@ -1840,7 +1829,7 @@ void sub_806C310(u8 spriteId, u8 menuIndex, s8 directionPressed)
}
#ifdef NONMATCHING
-void sub_806C490(u8 spriteId, u8 menuIndex, s8 directionPressed)
+void ChangeLinkDoubleBattlePartyMenuSelection(u8 spriteId, u8 menuIndex, s8 directionPressed)
{
s8 menuMovement;
u16 var1;
@@ -1849,10 +1838,10 @@ void sub_806C490(u8 spriteId, u8 menuIndex, s8 directionPressed)
menuMovement = directionPressed + 2;
switch (menuMovement)
{
- case 2:
+ case 2: // no movement
gSprites[spriteId].data1 = 0;
break;
- case 3:
+ case 3: // moving down
if (menuIndex == 7) {
gSprites[spriteId].data0 = 0;
} else {
@@ -1871,7 +1860,7 @@ void sub_806C490(u8 spriteId, u8 menuIndex, s8 directionPressed)
gSprites[spriteId].data1 = 0;
break;
- case 1:
+ case 1: // moving up
while (menuIndex != 0) {
menuIndex--;
if (menuIndex != PARTY_SIZE && GetMonData(gPlayerParty[menuIndex], MON_DATA_SPECIES))
@@ -1885,7 +1874,7 @@ void sub_806C490(u8 spriteId, u8 menuIndex, s8 directionPressed)
gSprites[spriteId].data0 = 7;
gSprites[spriteId].data1 = 0;
break;
- case 4:
+ case 4: // moving right
if (menuIndex == 0) {
var1 = gSprites[spriteId].data1 - 2;
if (var1 > 1) {
@@ -1910,7 +1899,7 @@ void sub_806C490(u8 spriteId, u8 menuIndex, s8 directionPressed)
}
}
break;
- case 0:
+ case 0: // moving left
var2 = menuIndex - 2;
if (var2 <= 1) {
gSprites[spriteId].data0 = 0;
@@ -1929,7 +1918,7 @@ void sub_806C490(u8 spriteId, u8 menuIndex, s8 directionPressed)
#else
__attribute__((naked))
-void sub_806C490(u8 spriteId, u8 menuIndex, s8 directionPressed)
+void ChangeLinkDoubleBattlePartyMenuSelection(u8 spriteId, u8 menuIndex, s8 directionPressed)
{
asm(".syntax unified\n\
push {r4-r6,lr}\n\
@@ -2171,8 +2160,7 @@ _0806C654: .4byte gSprites\n\
}
#endif // NONMATCHING
-// directionPressed = -2 for left, 2 for right, 1 for down, -1 for up
-void sub_806C658(u8 taskId, s8 directionPressed)
+void ChangeBattleTowerPartyMenuSelection(u8 taskId, s8 directionPressed)
{
u16 newMenuIndex;
u8 newMenuIndex2;
@@ -2200,10 +2188,10 @@ void sub_806C658(u8 taskId, s8 directionPressed)
switch (menuMovement)
{
- case 2:
+ case 2: // no movement
gSprites[spriteId].data1 = 0;
break;
- case 1:
+ case 1: // moving up
if (menuIndex == 0) {
gSprites[spriteId].data0 = 7;
} else if (menuIndex == PARTY_SIZE) {
@@ -2214,7 +2202,7 @@ void sub_806C658(u8 taskId, s8 directionPressed)
gSprites[spriteId].data1 = 0;
break;
- case 3:
+ case 3: // moving down
if (menuIndex == gPlayerPartyCount - 1) {
gSprites[spriteId].data0 = 6;
} else if (menuIndex == 7) {
@@ -2225,7 +2213,7 @@ void sub_806C658(u8 taskId, s8 directionPressed)
gSprites[spriteId].data1 = 0;
break;
- case 4:
+ case 4: // moving right
if (gPlayerPartyCount > 1 && menuIndex == 0)
{
if (gSprites[spriteId].data1 == 0) {
@@ -2235,7 +2223,7 @@ void sub_806C658(u8 taskId, s8 directionPressed)
gSprites[spriteId].data0 = gSprites[spriteId].data1;
}
break;
- case 0:
+ case 0: // moving left
newMenuIndex3 = menuIndex - 1;
if (newMenuIndex3 <= 4)
{
@@ -2250,7 +2238,7 @@ void sub_806C658(u8 taskId, s8 directionPressed)
newMenuIndex = gSprites[spriteId].data0;
- if (gSprites[spriteId].data0 <= PARTY_SIZE - 1)
+ if (gSprites[spriteId].data0 < PARTY_SIZE)
{
sub_806BF24(&gUnknown_083769A8[gSprites[spriteId].data0 * 2], newMenuIndex, 3, 1);
}
@@ -2274,18 +2262,19 @@ void sub_806C658(u8 taskId, s8 directionPressed)
}
}
-void sub_806C890(u8 taskId)
+// Selects the "OK" button in the Battle Tower party menu.
+void SelectBattleTowerOKButton(u8 taskId)
{
u8 spriteId = sub_806CA00(taskId);
- u8 monIndex = gSprites[spriteId].data0;
- if (monIndex != 6)
+ u8 menuIndex = gSprites[spriteId].data0;
+ if (menuIndex != 6)
{
- UpdateMonIconFrame_806DA44(taskId, monIndex, 0);
+ UpdateMonIconFrame_806DA44(taskId, menuIndex, 0);
- if (monIndex < PARTY_SIZE)
+ if (menuIndex < PARTY_SIZE)
{
- sub_806BF24(&gUnknown_083769A8[monIndex * 2], monIndex, 3, 0);
+ sub_806BF24(&gUnknown_083769A8[menuIndex * 2], menuIndex, 3, 0);
}
else
{
@@ -2306,33 +2295,33 @@ void sub_806C890(u8 taskId)
void sub_806C92C(u8 spriteId)
{
- u8 monIndex1 = gSprites[spriteId].data0;
- u8 monIndex2 = gSprites[spriteId].data1;
+ u8 menuIndex1 = gSprites[spriteId].data0;
+ u8 menuIndex2 = gSprites[spriteId].data1;
if (!IsDoubleBattle())
{
- if (monIndex1 < 1) {
- if (monIndex2 < 1) {
- monIndex2 = 1;
+ if (menuIndex1 < 1) {
+ if (menuIndex2 < 1) {
+ menuIndex2 = 1;
}
} else {
- if (monIndex2 >= 1) {
- monIndex2 = 0;
+ if (menuIndex2 >= 1) {
+ menuIndex2 = 0;
}
}
} else {
- if (monIndex1 < 2) {
- if (monIndex2 < 2) {
- monIndex2 = 2;
+ if (menuIndex1 < 2) {
+ if (menuIndex2 < 2) {
+ menuIndex2 = 2;
}
} else {
- if (monIndex2 >= 2) {
- monIndex2 = 0;
+ if (menuIndex2 >= 2) {
+ menuIndex2 = 0;
}
}
}
- gSprites[spriteId].data1 = monIndex2;
+ gSprites[spriteId].data1 = menuIndex2;
}
void sub_806C994(u8 taskId, u8 b)
@@ -2369,12 +2358,12 @@ u8 sub_806CA38(u8 taskId)
return gSprites[spriteId].data0;
}
-void sub_806CA60(u8 taskId)
+void SetupDefaultPartyMenuSwitchPokemon(u8 taskId)
{
gTasks[taskId].func = TaskDummy;
ewram01000.unk0 = taskId;
- CreateTask(sub_806CB74, 0);
+ CreateTask(HandlePartyMenuSwitchPokemonInput, 0);
ewram01000.unk1 = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy);
sub_806C9C4(taskId, ewram01000.unk1);
@@ -2386,12 +2375,13 @@ void sub_806CA60(u8 taskId)
ewram1B000.unk261 = 2;
}
-void sub_806CAFC(u8 a, s16 b)
+// Handles changing the the current mon selection when choosing mons to swap places.
+void ChangePartyMenuSwitchPokemonSelection(u8 taskId, s16 menuDirectionPressed)
{
struct Sprite *sprite1 = &gSprites[ewram01000.unk1];
struct Sprite *sprite2 = &gSprites[ewram01000.unk2];
- sub_806BF74(a, b);
+ ChangePartyMenuSelection(taskId, menuDirectionPressed);
if (sprite1->data0 != sprite2->data0)
{
@@ -2403,21 +2393,21 @@ void sub_806CAFC(u8 a, s16 b)
}
}
-void sub_806CB74(u8 taskId)
+void HandlePartyMenuSwitchPokemonInput(u8 taskId)
{
switch (gMain.newAndRepeatedKeys)
{
case DPAD_UP:
- sub_806CAFC(ewram01000.unk0, -1);
+ ChangePartyMenuSwitchPokemonSelection(ewram01000.unk0, -1);
break;
case DPAD_DOWN:
- sub_806CAFC(ewram01000.unk0, 1);
+ ChangePartyMenuSwitchPokemonSelection(ewram01000.unk0, 1);
break;
case DPAD_LEFT:
- sub_806CAFC(ewram01000.unk0, -2);
+ ChangePartyMenuSwitchPokemonSelection(ewram01000.unk0, -2);
break;
case DPAD_RIGHT:
- sub_806CAFC(ewram01000.unk0, 2);
+ ChangePartyMenuSwitchPokemonSelection(ewram01000.unk0, 2);
break;
}
@@ -2500,8 +2490,8 @@ void sub_806CD5C(u8 taskId)
ewram01000.unk6 = monIndex2;
}
- ewram01000.unk3 = GetMonIconSpriteId_maybe(ewram01000.unk0, ewram01000.unk5);
- ewram01000.unk4 = GetMonIconSpriteId_maybe(ewram01000.unk0, ewram01000.unk6);
+ ewram01000.unk3 = GetMonIconSpriteId(ewram01000.unk0, ewram01000.unk5);
+ ewram01000.unk4 = GetMonIconSpriteId(ewram01000.unk0, ewram01000.unk6);
var1 = ewram01000.unk5;
if (!var1)
@@ -2536,20 +2526,20 @@ void sub_806CD5C(u8 taskId)
}
}
-void sub_806CEF8(s16 *x, s16 *y)
+void SwapValues_s16(s16 *a, s16 *b)
{
- s16 temp = *x;
- *x = *y;
- *y = temp;
+ s16 temp = *a;
+ *a = *b;
+ *b = temp;
}
#ifdef NONMATCHING
void sub_806CF04(void)
{
- sub_806CEF8(&gSprites[ewram01000.unk3].pos1.x, &gSprites[ewram01000.unk4].pos1.x);
- sub_806CEF8(&gSprites[ewram01000.unk3].pos1.y, &gSprites[ewram01000.unk4].pos1.y);
- sub_806CEF8(&gSprites[ewram01000.unk3].pos2.x, &gSprites[ewram01000.unk4].pos2.x);
- sub_806CEF8(&gSprites[ewram01000.unk3].data0, &gSprites[ewram01000.unk4].data0);
+ SwapValues_s16(&gSprites[ewram01000.unk3].pos1.x, &gSprites[ewram01000.unk4].pos1.x);
+ SwapValues_s16(&gSprites[ewram01000.unk3].pos1.y, &gSprites[ewram01000.unk4].pos1.y);
+ SwapValues_s16(&gSprites[ewram01000.unk3].pos2.x, &gSprites[ewram01000.unk4].pos2.x);
+ SwapValues_s16(&gSprites[ewram01000.unk3].data0, &gSprites[ewram01000.unk4].data0);
gSprites[ewram01000.unk3].callback = SpriteCB_sub_806D37C;
gSprites[ewram01000.unk4].callback = SpriteCB_sub_806D37C;
@@ -2572,7 +2562,7 @@ void sub_806CF04(void)
adds r1, r2\n\
lsls r1, 2\n\
adds r1, r5\n\
- bl sub_806CEF8\n\
+ bl SwapValues_s16\n\
ldrb r1, [r4, 0x3]\n\
lsls r0, r1, 4\n\
adds r0, r1\n\
@@ -2584,7 +2574,7 @@ void sub_806CF04(void)
adds r1, r2\n\
lsls r1, 2\n\
adds r1, r3\n\
- bl sub_806CEF8\n\
+ bl SwapValues_s16\n\
ldrb r1, [r4, 0x3]\n\
lsls r0, r1, 4\n\
adds r0, r1\n\
@@ -2596,7 +2586,7 @@ void sub_806CF04(void)
adds r1, r2\n\
lsls r1, 2\n\
adds r1, r3\n\
- bl sub_806CEF8\n\
+ bl SwapValues_s16\n\
ldrb r1, [r4, 0x3]\n\
lsls r0, r1, 4\n\
adds r0, r1\n\
@@ -2609,7 +2599,7 @@ void sub_806CF04(void)
adds r1, r2\n\
lsls r1, 2\n\
adds r1, r3\n\
- bl sub_806CEF8\n\
+ bl SwapValues_s16\n\
ldrb r1, [r4, 0x3]\n\
lsls r0, r1, 4\n\
adds r0, r1\n\
@@ -2726,8 +2716,8 @@ void sub_806D198(u8 taskId)
{
u8 spriteId;
- SetMonIconSpriteId_maybe(ewram01000.unk0, ewram01000.unk5, ewram01000.unk4);
- SetMonIconSpriteId_maybe(ewram01000.unk0, ewram01000.unk6, ewram01000.unk3);
+ SetMonIconSpriteId(ewram01000.unk0, ewram01000.unk5, ewram01000.unk4);
+ SetMonIconSpriteId(ewram01000.unk0, ewram01000.unk6, ewram01000.unk3);
gSprites[ewram01000.unk3].pos1.x = gUnknown_08376678[IsDoubleBattle()][ewram01000.unk6].x;
gSprites[ewram01000.unk3].pos1.y = gUnknown_08376678[IsDoubleBattle()][ewram01000.unk6].y;
@@ -2741,7 +2731,7 @@ void sub_806D198(u8 taskId)
gSprites[ewram01000.unk4].pos2.y = 0;
gSprites[ewram01000.unk4].callback = UpdateMonIconFrame_806DA38;
- spriteId = GetMonIconSpriteId_maybe(ewram01000.unk0, gSprites[ewram01000.unk2].data0);
+ spriteId = GetMonIconSpriteId(ewram01000.unk0, gSprites[ewram01000.unk2].data0);
gSprites[spriteId].callback = UpdateMonIconFrame_806DA0C;
SwapPokemon(&gPlayerParty[ewram01000.unk5], &gPlayerParty[ewram01000.unk6]);
@@ -2812,7 +2802,7 @@ void sub_806D4AC(u8 taskId, u16 species, u8 c)
if (species)
{
u8 monIndex = c + 3;
- u8 spriteId = GetMonIconSpriteId_maybe(taskId, monIndex);
+ u8 spriteId = GetMonIconSpriteId(taskId, monIndex);
gSprites[spriteId].data0 = -8;
gSprites[spriteId].data2 = gTasks[taskId].data[0] * -8;
@@ -2822,7 +2812,7 @@ void sub_806D4AC(u8 taskId, u16 species, u8 c)
void sub_806D50C(u8 taskId, u8 monIndex)
{
- gSprites[GetMonIconSpriteId_maybe(taskId, monIndex)].pos1.x += 0xF0;
+ gSprites[GetMonIconSpriteId(taskId, monIndex)].pos1.x += 0xF0;
}
void PrintPartyMenuPromptText(u8 textId, u8 b)
@@ -2845,7 +2835,7 @@ void PrintPartyMenuPromptText(u8 textId, u8 b)
break;
}
- MenuPrint(gUnknown_08376624[textId], 1, 17);
+ MenuPrint(PartyMenuPromptTexts[textId], 1, 17);
}
}
@@ -2977,7 +2967,7 @@ void CreatePartyMenuMonIcon(u8 taskId, u8 monIndex, u8 menuType, struct Pokemon
u32 personality = GetMonData(pokemon, MON_DATA_PERSONALITY);
u8 spriteId = CreateMonIcon(species2, sub_809D62C, x, y, 5, personality);
- SetMonIconSpriteId_maybe(taskId, monIndex, spriteId);
+ SetMonIconSpriteId(taskId, monIndex, spriteId);
SetMonIconAnim(spriteId, pokemon);
}
@@ -3006,13 +2996,13 @@ void unref_sub_806D964(u8 taskId)
}
}
-void CreateMonIcon_806D99C(u8 taskId, u8 monIndex, u8 menuType, struct UnknownPokemonStruct2 *pokemon)
+void CreateMonIcon_LinkMultiBattle(u8 taskId, u8 monIndex, u8 menuType, struct UnknownPokemonStruct2 *pokemon)
{
u8 x = gUnknown_08376678[menuType][monIndex].x;
u8 y = gUnknown_08376678[menuType][monIndex].y;
u8 spriteId = CreateMonIcon(pokemon->species, sub_809D62C, x, y, 5, pokemon->personality);
- SetMonIconSpriteId_maybe(taskId, monIndex, spriteId);
+ SetMonIconSpriteId(taskId, monIndex, spriteId);
SetMonIconAnimByHP(spriteId, pokemon->hp, pokemon->maxhp);
}
@@ -3045,7 +3035,7 @@ void UpdateMonIconFrame_806DA44(u8 taskId, u8 monIndex, u8 c)
if (monIndex < PARTY_SIZE)
{
- spriteId = GetMonIconSpriteId_maybe(taskId, monIndex);
+ spriteId = GetMonIconSpriteId(taskId, monIndex);
gSprites[spriteId].pos2.y = 0;
gSprites[spriteId].data0 = 0;
@@ -3145,7 +3135,7 @@ void CreateHeldItemIcons_806DC34(u8 taskId)
{
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES))
{
- monIconSpriteId = GetMonIconSpriteId_maybe(taskId, i);
+ monIconSpriteId = GetMonIconSpriteId(taskId, i);
heldItemSpriteId = CreateSprite(&gSpriteTemplate_837660C, 0xFA, 0xAA, 4);
gSprites[heldItemSpriteId].pos2.x = 4;
@@ -3165,7 +3155,7 @@ void CreateHeldItemIcon_806DCD4(u8 taskId, u8 monIndex, u16 item)
u8 monIconSpriteId;
u8 heldItemSpriteId;
- monIconSpriteId = GetMonIconSpriteId_maybe(taskId, monIndex);
+ monIconSpriteId = GetMonIconSpriteId(taskId, monIndex);
heldItemSpriteId = CreateSprite(gSpriteTemplate_837660C, 0xFA, 0xAA, 4);
gSprites[heldItemSpriteId].pos2.x = 4;
@@ -3205,7 +3195,7 @@ void CreateHeldItemIcon_806DCD4(u8 taskId, u8 monIndex, u16 item)
lsrs r1, 24\n\
lsls r2, 16\n\
lsrs r7, r2, 16\n\
- bl GetMonIconSpriteId_maybe\n\
+ bl GetMonIconSpriteId\n\
adds r4, r0, 0\n\
lsls r4, 24\n\
lsrs r4, 24\n\
@@ -3292,7 +3282,7 @@ void SpriteCB_UpdateHeldItemIconPosition(struct Sprite *sprite)
sprite->pos1.y = gSprites[spriteId].pos1.y;
}
-u8 GetMonIconSpriteId_maybe(u8 taskId, u8 monIndex)
+u8 GetMonIconSpriteId(u8 taskId, u8 monIndex)
{
switch (monIndex)
{
@@ -3318,7 +3308,7 @@ u8 GetMonIconSpriteId_maybe(u8 taskId, u8 monIndex)
}
}
-void SetMonIconSpriteId_maybe(u8 taskId, u8 monIndex, u8 spriteId)
+void SetMonIconSpriteId(u8 taskId, u8 monIndex, u8 spriteId)
{
switch (monIndex)
{
@@ -3343,9 +3333,9 @@ void SetMonIconSpriteId_maybe(u8 taskId, u8 monIndex, u8 spriteId)
}
}
-u16 GetHeldItemIconSpriteIdByMon_maybe(u8 taskId, u8 monIndex)
+u16 GetMonHeldItemIconSpriteId(u8 taskId, u8 monIndex)
{
- u8 spriteId = GetMonIconSpriteId_maybe(taskId, monIndex);
+ u8 spriteId = GetMonIconSpriteId(taskId, monIndex);
u8 retVal = gSprites[spriteId].data7;
return retVal;
}
@@ -3356,7 +3346,7 @@ void SetHeldItemIconVisibility(u8 taskId, u8 monIndex)
u8 spriteId;
u16 heldItem;
- spriteId = GetHeldItemIconSpriteIdByMon_maybe(taskId, monIndex);
+ spriteId = GetMonHeldItemIconSpriteId(taskId, monIndex);
if (!GetMonData(&gPlayerParty[monIndex], MON_DATA_HELD_ITEM))
{
gSprites[spriteId].invisible = 1;
@@ -3391,7 +3381,7 @@ void SetHeldItemIconVisibility(u8 a, u8 monIndex)
lsls r4, 24\n\
lsrs r4, 24\n\
adds r1, r4, 0\n\
- bl GetHeldItemIconSpriteIdByMon_maybe\n\
+ bl GetMonHeldItemIconSpriteId\n\
lsls r0, 24\n\
lsrs r5, r0, 24\n\
adds r6, r5, 0\n\
@@ -4462,7 +4452,7 @@ void sub_806F8AC(u8 taskId)
StringExpandPlaceholders(gStringVar4, gOtherText_HPRestoredBy);
else
StringExpandPlaceholders(gStringVar4, gOtherText_RegainedHealth);
- SetMonIconAnim(GetMonIconSpriteId_maybe(ewram1C000.unk4, ewram1C000.unk5), ewram1C000.pokemon);
+ SetMonIconAnim(GetMonIconSpriteId(ewram1C000.unk4, ewram1C000.unk5), ewram1C000.pokemon);
task_pc_turn_off(&gUnknown_083769A8[IsDoubleBattle() * 12 + ewram1C000.unk5 * 2], 7);
ewram1B000.unk261 = 2;
sub_806E834(gStringVar4, 1);
@@ -4489,7 +4479,7 @@ void sub_806FA18(u8 taskId)
ewram1C000.unkC = 0;
gTasks[taskId].data[11] -= gTasks[taskId].data[12];
SetMonData(ewram1C000.pokemon, MON_DATA_HP, (u8 *)&gTasks[taskId].data[11]);
- SetMonIconAnim(GetMonIconSpriteId_maybe(ewram1C000.unk4, ewram01000.unk1), ewram1C000.pokemon);
+ SetMonIconAnim(GetMonIconSpriteId(ewram1C000.unk4, ewram01000.unk1), ewram1C000.pokemon);
ewram1C000.unk5 = gSprites[ewram01000.unk2].data0;
ewram1C000.pokemon = &gPlayerParty[ewram1C000.unk5];
gTasks[taskId].data[10] = GetMonData(ewram1C000.pokemon, MON_DATA_MAX_HP);
@@ -5193,7 +5183,7 @@ void RedrawPokemonInfoInMenu(u8 monIndex, struct Pokemon *pokemon)
PartyMenuDoPrintHP(monIndex, isDoubleBattle, currentHP, maxHP);
PartyMenuTryDrawHPBar(monIndex, pokemon);
- icon = GetMonIconSpriteId_maybe(ewram1C000.unk4, monIndex);
+ icon = GetMonIconSpriteId(ewram1C000.unk4, monIndex);
SetMonIconAnim(icon, pokemon);
task_pc_turn_off(&gUnknown_083769A8[IsDoubleBattle() * 12 + monIndex * 2], 7);
diff --git a/src/pokemon/pokemon_menu.c b/src/pokemon/pokemon_menu.c
index 5a13b99fb..7d70e7708 100644
--- a/src/pokemon/pokemon_menu.c
+++ b/src/pokemon/pokemon_menu.c
@@ -251,9 +251,9 @@ void HandleDefaultPartyMenu(u8 taskID)
{
if (!gPaletteFade.active)
{
- switch (sub_806BD80(taskID))
+ switch (HandleDefaultPartyMenuInput(taskID))
{
- case 1:
+ case A_BUTTON:
PlaySE(SE_SELECT);
gLastFieldPokeMenuOpened = sub_806CA38(taskID);
GetMonNickname(&gPlayerParty[gLastFieldPokeMenuOpened], gStringVar1);
@@ -263,7 +263,7 @@ void HandleDefaultPartyMenu(u8 taskID)
gTasks[taskID].func = sub_8089D94;
sub_808B5B4(taskID);
break;
- case 2:
+ case B_BUTTON:
PlaySE(SE_SELECT);
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
gTasks[taskID].func = sub_8089E4C;
@@ -327,7 +327,7 @@ static void sub_8089EBC(void)
if (InitPartyMenu() == TRUE)
{
sub_806C994(EWRAM_1B000.menuHandlerTaskId, gUnknown_020384F0);
- sub_806BF74(EWRAM_1B000.menuHandlerTaskId, 0);
+ ChangePartyMenuSelection(EWRAM_1B000.menuHandlerTaskId, 0);
gLastFieldPokeMenuOpened = gUnknown_020384F0;
sub_8089E84();
SetMainCallback2(CB2_PartyMenuMain);
@@ -360,9 +360,9 @@ static void PokemonMenu_Summary(u8 taskID)
gTasks[taskID].func = sub_8089F44;
}
-void sub_808A004(u8 taskID)
+void DoPokemonMenu_Switch(u8 taskID)
{
- SetTaskFuncWithFollowupFunc(taskID, sub_806CA60, HandleDefaultPartyMenu);
+ SetTaskFuncWithFollowupFunc(taskID, SetupDefaultPartyMenuSwitchPokemon, HandleDefaultPartyMenu);
MenuZeroFillWindowRect(19, 0, 29, 19);
}
@@ -371,7 +371,7 @@ static void PokemonMenu_Switch(u8 taskID)
HandleDestroyMenuCursors();
ewram01000.unkC = sub_806CD5C;
ewram01000.array[53553] = 1;
- sub_808A004(taskID);
+ DoPokemonMenu_Switch(taskID);
}
static void sub_808A060(u8 taskID)
@@ -478,7 +478,7 @@ static void sub_808A358(void)
if (InitPartyMenu() == TRUE)
{
sub_806C994(EWRAM_1B000.menuHandlerTaskId, gLastFieldPokeMenuOpened);
- sub_806BF74(EWRAM_1B000.menuHandlerTaskId, 0);
+ ChangePartyMenuSelection(EWRAM_1B000.menuHandlerTaskId, 0);
SetMainCallback2(CB2_PartyMenuMain);
break;
}
@@ -494,7 +494,7 @@ static void sub_808A3A4(void)
if (InitPartyMenu() == TRUE)
{
sub_806C994(EWRAM_1B000.menuHandlerTaskId, gLastFieldPokeMenuOpened);
- sub_806BF74(EWRAM_1B000.menuHandlerTaskId, 0);
+ ChangePartyMenuSelection(EWRAM_1B000.menuHandlerTaskId, 0);
EWRAM_1B000.unk262 = 3;
sub_8089E84();
SetMainCallback2(CB2_PartyMenuMain);
@@ -513,7 +513,7 @@ void sub_808A3F8(void)
gPaletteFade.bufferTransferDisabled = 1;
sub_806BD58(taskID, 0);
sub_806C994(taskID, gLastFieldPokeMenuOpened);
- sub_806BF74(taskID, 0);
+ ChangePartyMenuSelection(taskID, 0);
if (!(bool8)(GetMonData(&gPlayerParty[sub_806CA38(taskID)], MON_DATA_HELD_ITEM)))
{
SetMainCallback2(sub_808A34C);
@@ -542,7 +542,7 @@ static void sub_808A4D4(void)
if (InitPartyMenu() == TRUE)
{
sub_806C994(EWRAM_1B000.menuHandlerTaskId, gLastFieldPokeMenuOpened);
- sub_806BF74(EWRAM_1B000.menuHandlerTaskId, 0);
+ ChangePartyMenuSelection(EWRAM_1B000.menuHandlerTaskId, 0);
SetMainCallback2(CB2_PartyMenuMain);
break;
}
@@ -851,7 +851,7 @@ static void sub_808AD0C(void)
if (InitPartyMenu() == TRUE)
{
sub_806C994(EWRAM_1B000.menuHandlerTaskId, gLastFieldPokeMenuOpened);
- sub_806BF74(EWRAM_1B000.menuHandlerTaskId, 0);
+ ChangePartyMenuSelection(EWRAM_1B000.menuHandlerTaskId, 0);
SetMainCallback2(CB2_PartyMenuMain);
break;
}
@@ -968,7 +968,7 @@ static void sub_808AF80(void)
if (gLastFieldPokeMenuOpened > 5 || !GetMonData(&gPlayerParty[gLastFieldPokeMenuOpened], MON_DATA_SPECIES))
gLastFieldPokeMenuOpened = 0;
sub_806C994(ewram1B000.menuHandlerTaskId, gLastFieldPokeMenuOpened);
- sub_806BF74(ewram1B000.menuHandlerTaskId, 0);
+ ChangePartyMenuSelection(ewram1B000.menuHandlerTaskId, 0);
SetMainCallback2(CB2_PartyMenuMain);
break;
}
@@ -1003,9 +1003,9 @@ void sub_808B0C0(u8 taskID)
{
if (!gPaletteFade.active)
{
- switch (sub_806BD80(taskID))
+ switch (HandleDefaultPartyMenuInput(taskID))
{
- case 1:
+ case A_BUTTON:
gLastFieldPokeMenuOpened = sub_806CA38(taskID);
if (GetMonData(&gPlayerParty[gLastFieldPokeMenuOpened], MON_DATA_IS_EGG))
PlaySE(SE_HAZURE);
@@ -1026,7 +1026,7 @@ void sub_808B0C0(u8 taskID)
}
}
break;
- case 2:
+ case B_BUTTON:
gLastFieldPokeMenuOpened = sub_806CA38(taskID);
PlaySE(SE_SELECT);
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
@@ -1106,7 +1106,7 @@ static void sub_808B3A0(void)
if (InitPartyMenu() == TRUE)
{
sub_806C994(EWRAM_1B000.menuHandlerTaskId, gLastFieldPokeMenuOpened);
- sub_806BF74(EWRAM_1B000.menuHandlerTaskId, 0);
+ ChangePartyMenuSelection(EWRAM_1B000.menuHandlerTaskId, 0);
SetMainCallback2(CB2_PartyMenuMain);
break;
}
@@ -1166,7 +1166,7 @@ static void sub_808B518(void)
if (InitPartyMenu() == TRUE)
{
sub_806C994(EWRAM_1B000.menuHandlerTaskId, gUnknown_020384F0);
- sub_806BF74(EWRAM_1B000.menuHandlerTaskId, 0);
+ ChangePartyMenuSelection(EWRAM_1B000.menuHandlerTaskId, 0);
SetMainCallback2(CB2_PartyMenuMain);
break;
}
diff --git a/src/script_pokemon_util_80F99CC.c b/src/script_pokemon_util_80F99CC.c
index 57b670de3..e303d5173 100644
--- a/src/script_pokemon_util_80F99CC.c
+++ b/src/script_pokemon_util_80F99CC.c
@@ -115,7 +115,7 @@ bool8 SetupContestPartyMenu(void)
EWRAM_1B000.setupState++;
break;
case 7: // the only case that can return true.
- if (sub_806B58C(EWRAM_1B000.monIndex) != 1)
+ if (DrawPartyMonBackground(EWRAM_1B000.monIndex) != 1)
{
EWRAM_1B000.monIndex++;
break;
@@ -155,15 +155,15 @@ void HandleSelectPartyMenu(u8 var)
{
if (!gPaletteFade.active)
{
- switch (sub_806BD80(var))
+ switch (HandleDefaultPartyMenuInput(var))
{
- case 1:
+ case A_BUTTON:
PlaySE(SE_SELECT);
gUnknown_02038694 = sub_806CA38(var);
gSpecialVar_0x8004 = gUnknown_02038694;
sub_8123138(var);
break;
- case 2:
+ case B_BUTTON:
PlaySE(SE_SELECT);
gUnknown_02038694 = 0xFF;
gSpecialVar_0x8004 = 0xFF;
@@ -201,14 +201,13 @@ bool8 SetupMoveTutorPartyMenu(void)
if (sub_806BD58(EWRAM_1B000.menuHandlerTaskId, EWRAM_1B000.monIndex) != 1)
{
EWRAM_1B000.monIndex++;
- break;
}
else
{
EWRAM_1B000.monIndex = 0;
EWRAM_1B000.setupState++;
- break;
}
+ break;
case 4:
PartyMenuPrintMonsLevelOrStatus();
EWRAM_1B000.setupState++;
@@ -222,10 +221,9 @@ bool8 SetupMoveTutorPartyMenu(void)
EWRAM_1B000.setupState++;
break;
case 7: // the only case that can return true.
- if (sub_806B58C(EWRAM_1B000.monIndex) != 1)
+ if (DrawPartyMonBackground(EWRAM_1B000.monIndex) != 1)
{
EWRAM_1B000.monIndex++;
- break;
}
else
{
@@ -234,6 +232,7 @@ bool8 SetupMoveTutorPartyMenu(void)
return TRUE;
}
}
+
return FALSE;
}
@@ -254,15 +253,15 @@ void HandleMoveTutorPartyMenu(u8 var)
{
if (!gPaletteFade.active)
{
- switch (sub_806BD80(var))
+ switch (HandleDefaultPartyMenuInput(var))
{
- case 1:
+ case A_BUTTON:
PlaySE(SE_SELECT);
gSpecialVar_0x8004 = sub_806CA38(var);
gSpecialVar_0x8005 = sub_8040574(&gPlayerParty[gSpecialVar_0x8004]);
sub_8123138(var);
break;
- case 2:
+ case B_BUTTON:
PlaySE(SE_SELECT);
gSpecialVar_0x8004 = 0xFF;
sub_8123138(var);