From f2b5416c20ba48a09f590dd727e533177254b5c8 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 17 Sep 2017 20:43:34 -0700 Subject: Decompile PrintNewStatsInLevelUpWindow() --- include/party_menu.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index 5250486bb..a78e6c979 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -18,7 +18,6 @@ struct PartyPopupMenu // TODO: Unify these two structs -#define DATA_COUNT (6) struct Unk201B000 { //u8 filler0[0x260]; @@ -30,7 +29,8 @@ struct Unk201B000 u8 unk261; u8 unk262; u8 unk263; - s16 unk264[DATA_COUNT * 2]; // This may be a union + // Stat growth upon level-up. First 6 bytes = old stats, Second 6 bytes = new stats. + s16 statGrowths[NUM_STATS * 2]; u8 filler27C[2]; s16 unk27E; s16 unk280; @@ -122,7 +122,6 @@ void sub_806E6F0(); void sub_806E750(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, int); void sub_806E7D0(u8, const struct PartyPopupMenu *); TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, u8); -void sub_8070968(); void sub_8070A20(); void Task_RareCandy3(u8); void sub_8070C54(); @@ -167,7 +166,8 @@ void DoPPUpItemEffect(u8, u16, TaskFunc); void DoRareCandyItemEffect(u8, u16, TaskFunc); void Task_RareCandy1(u8); void Task_RareCandy2(u8); -void sub_8070848(u8 taskId); +void PrintStatGrowthsInLevelUpWindow(u8 taskId); +void PrintNewStatsInLevelUpWindow(u8 taskId); void sub_806CA60(u8 taskId); void sub_806CD5C(u8 taskId); void DoTakeMail(u8 taskId, TaskFunc func); -- cgit v1.2.3 From ee45710b2b62b099f1d1919678ca1f21839b1251 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 17 Sep 2017 21:33:56 -0700 Subject: Decompile RedrawPokemonInfoInMenu --- include/party_menu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index a78e6c979..b485d982f 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -122,7 +122,6 @@ void sub_806E6F0(); void sub_806E750(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, int); void sub_806E7D0(u8, const struct PartyPopupMenu *); TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, u8); -void sub_8070A20(); void Task_RareCandy3(u8); void sub_8070C54(); void DoEvolutionStoneItemEffect(u8, u16, TaskFunc); @@ -168,6 +167,7 @@ void Task_RareCandy1(u8); void Task_RareCandy2(u8); void PrintStatGrowthsInLevelUpWindow(u8 taskId); void PrintNewStatsInLevelUpWindow(u8 taskId); +void RedrawPokemonInfoInMenu(u8, struct Pokemon *); void sub_806CA60(u8 taskId); void sub_806CD5C(u8 taskId); void DoTakeMail(u8 taskId, TaskFunc func); -- cgit v1.2.3 From ad1f73f49e53f166bf3d4c9610d2fa60977fb6a3 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 18 Sep 2017 00:32:52 -0700 Subject: Decompile Task_RareCandy3 --- include/party_menu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index b485d982f..b1c6ccd02 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -123,7 +123,7 @@ void sub_806E750(u8, const struct PartyPopupMenu *, const struct PartyMenuItem * void sub_806E7D0(u8, const struct PartyPopupMenu *); TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, u8); void Task_RareCandy3(u8); -void sub_8070C54(); +void sub_8070C54(u8); void DoEvolutionStoneItemEffect(u8, u16, TaskFunc); u8 GetItemEffectType(); u8 sub_806E834(const u8 *message, u8 arg1); -- cgit v1.2.3 From 5e8ad277727278d2dd97339051819542f715bac2 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 18 Sep 2017 09:40:00 -0700 Subject: Decompile TeachMonMoveInPartyMenu --- include/party_menu.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index b1c6ccd02..68af9669b 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -122,8 +122,6 @@ void sub_806E6F0(); void sub_806E750(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, int); void sub_806E7D0(u8, const struct PartyPopupMenu *); TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, u8); -void Task_RareCandy3(u8); -void sub_8070C54(u8); void DoEvolutionStoneItemEffect(u8, u16, TaskFunc); u8 GetItemEffectType(); u8 sub_806E834(const u8 *message, u8 arg1); @@ -168,6 +166,8 @@ void Task_RareCandy2(u8); void PrintStatGrowthsInLevelUpWindow(u8 taskId); void PrintNewStatsInLevelUpWindow(u8 taskId); void RedrawPokemonInfoInMenu(u8, struct Pokemon *); +void Task_RareCandy3(u8); +void TeachMonMoveInPartyMenu(u8); void sub_806CA60(u8 taskId); void sub_806CD5C(u8 taskId); void DoTakeMail(u8 taskId, TaskFunc func); -- cgit v1.2.3 From a7fa00901efb9e7e90a78b3e415a56b695588ec3 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 18 Sep 2017 10:25:42 -0700 Subject: Decompile DoEvolutionStoneItemEffect --- include/party_menu.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index 68af9669b..8734cbe65 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -168,6 +168,7 @@ void PrintNewStatsInLevelUpWindow(u8 taskId); void RedrawPokemonInfoInMenu(u8, struct Pokemon *); void Task_RareCandy3(u8); void TeachMonMoveInPartyMenu(u8); +void DoEvolutionStoneItemEffect(u8 taskId, u16 evolutionStoneItem, TaskFunc c); void sub_806CA60(u8 taskId); void sub_806CD5C(u8 taskId); void DoTakeMail(u8 taskId, TaskFunc func); -- cgit v1.2.3 From 81a0f3b974f5f49e0bc7bf93b873de5dacfe0a01 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 19 Sep 2017 13:47:14 -0700 Subject: Decompile more party_menu --- include/party_menu.h | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index 8734cbe65..5eee17fd2 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -1,19 +1,14 @@ #ifndef GUARD_PARTY_MENU_H #define GUARD_PARTY_MENU_H +#include "menu.h" #include "task.h" -struct PartyMenuItem -{ - const u8 *text; - TaskFunc func; -}; - struct PartyPopupMenu { - u8 unk0; - u8 unk1; - const u8 *unk4; + /*0x0*/u8 numChoices; // number of menu choices + /*0x1*/u8 width; // menu width (number of characters it can fit horizontally) + /*0x4*/const u8 *items; // menu item ids (ids for a MenuAction2 array) }; // TODO: Unify these two structs @@ -119,11 +114,9 @@ void PartyMenuTryPrintMonsHP(void); void nullsub_13(void); void PartyMenuDrawHPBars(void); void sub_806E6F0(); -void sub_806E750(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, int); -void sub_806E7D0(u8, const struct PartyPopupMenu *); -TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, u8); -void DoEvolutionStoneItemEffect(u8, u16, TaskFunc); -u8 GetItemEffectType(); +void ShowPartyPopupMenu(u8 menuIndex, const struct PartyPopupMenu *menu, const struct MenuAction2 *menuActions, u8 cursorPos); +void ClosePartyPopupMenu(u8 index, const struct PartyPopupMenu *menu); +TaskFunc PartyMenuGetPopupMenuFunc(u8 menuIndex, const struct PartyPopupMenu *menus, const struct MenuAction2 *menuActions, u8 itemIndex); u8 sub_806E834(const u8 *message, u8 arg1); void sub_806E8D0(u8 taskId, u16 b, TaskFunc c); void party_menu_link_mon_held_item_object(u8); @@ -169,6 +162,7 @@ void RedrawPokemonInfoInMenu(u8, struct Pokemon *); 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 sub_806CD5C(u8 taskId); void DoTakeMail(u8 taskId, TaskFunc func); @@ -177,5 +171,6 @@ void PartyMenuTryGiveMonMail(u8 taskId, TaskFunc func); void sub_806D668(u8 partyID); void TaughtMove(u8 taskId); void StopTryingToTeachMove_806F588(u8 taskId); +void sub_806E720(u8, u8 *, u8 *, const struct PartyPopupMenu *); #endif // GUARD_PARTY_MENU_H -- cgit v1.2.3 From 31d472d048e916f959d93efdf79443c3b0113700 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 19 Sep 2017 15:29:59 -0700 Subject: Decompile SetPartyPopupMenuOffsets --- include/party_menu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index 5eee17fd2..bc4d938ef 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -114,6 +114,7 @@ void PartyMenuTryPrintMonsHP(void); void nullsub_13(void); void PartyMenuDrawHPBars(void); void sub_806E6F0(); +void SetPartyPopupMenuOffsets(u8 menuIndex, u8 *left, u8 *top, const struct PartyPopupMenu *menu); void ShowPartyPopupMenu(u8 menuIndex, const struct PartyPopupMenu *menu, const struct MenuAction2 *menuActions, u8 cursorPos); void ClosePartyPopupMenu(u8 index, const struct PartyPopupMenu *menu); TaskFunc PartyMenuGetPopupMenuFunc(u8 menuIndex, const struct PartyPopupMenu *menus, const struct MenuAction2 *menuActions, u8 itemIndex); @@ -171,6 +172,5 @@ void PartyMenuTryGiveMonMail(u8 taskId, TaskFunc func); void sub_806D668(u8 partyID); void TaughtMove(u8 taskId); void StopTryingToTeachMove_806F588(u8 taskId); -void sub_806E720(u8, u8 *, u8 *, const struct PartyPopupMenu *); #endif // GUARD_PARTY_MENU_H -- cgit v1.2.3 From 82fa74e7a24b95ba6642bc3cbef3830f32c460a7 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 19 Sep 2017 15:51:04 -0700 Subject: Decompile SwapPokemon --- include/party_menu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index bc4d938ef..46063831a 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -113,7 +113,7 @@ void PartyMenuDoPrintHP(u8, int, u16, u16); void PartyMenuTryPrintMonsHP(void); void nullsub_13(void); void PartyMenuDrawHPBars(void); -void sub_806E6F0(); +void SwapPokemon(struct Pokemon *a, struct Pokemon *b); void SetPartyPopupMenuOffsets(u8 menuIndex, u8 *left, u8 *top, const struct PartyPopupMenu *menu); void ShowPartyPopupMenu(u8 menuIndex, const struct PartyPopupMenu *menu, const struct MenuAction2 *menuActions, u8 cursorPos); void ClosePartyPopupMenu(u8 index, const struct PartyPopupMenu *menu); -- cgit v1.2.3 From 38f06a72f86940d46abf3aa304f4b8d72398ea15 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 19 Sep 2017 16:37:35 -0700 Subject: Decompile PartyMenuTryDrawHPBar --- include/party_menu.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index 46063831a..dfd231081 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -112,6 +112,8 @@ void PartyMenuPrintMonsLevelOrStatus(void); void PartyMenuDoPrintHP(u8, int, u16, u16); void PartyMenuTryPrintMonsHP(void); void nullsub_13(void); +void PartyMenuDrawHPBar(u8 monIndex, u8 b, struct Pokemon *pokemon); +void PartyMenuTryDrawHPBar(u8 monIndex, struct Pokemon *pokemon); void PartyMenuDrawHPBars(void); void SwapPokemon(struct Pokemon *a, struct Pokemon *b); void SetPartyPopupMenuOffsets(u8 menuIndex, u8 *left, u8 *top, const struct PartyPopupMenu *menu); -- cgit v1.2.3 From f4941b3f8e6ed9a919256e5b437d9f88093dcd8d Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 20 Sep 2017 21:36:26 -0700 Subject: Decompile printHP functions in party_menu.c --- include/party_menu.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index dfd231081..853f9b2e1 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -109,9 +109,10 @@ void PartyMenuClearLevelStatusTilemap(); void PartyMenuPrintMonLevelOrStatus(); void PartyMenuPrintMonsLevelOrStatus(void); void PartyMenuPrintMonsLevelOrStatus(void); -void PartyMenuDoPrintHP(u8, int, u16, u16); +void PartyMenuDoPrintHP(u8 monIndex, u8 b, u16 currentHP, u16 maxHP); void PartyMenuTryPrintMonsHP(void); void nullsub_13(void); +void PartyMenuDoDrawHPBar(u8 monIndex, u8 b, u16 currentHP, u16 maxHP); void PartyMenuDrawHPBar(u8 monIndex, u8 b, struct Pokemon *pokemon); void PartyMenuTryDrawHPBar(u8 monIndex, struct Pokemon *pokemon); void PartyMenuDrawHPBars(void); -- cgit v1.2.3 From 18e88baffa65cc6a647f96441446238616df275c Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 21 Sep 2017 20:40:14 -0700 Subject: Decompile PartyMenuPrintGenderIcon funcs --- include/party_menu.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index 853f9b2e1..2c19dc0a2 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -109,6 +109,8 @@ void PartyMenuClearLevelStatusTilemap(); void PartyMenuPrintMonLevelOrStatus(); void PartyMenuPrintMonsLevelOrStatus(void); void PartyMenuPrintMonsLevelOrStatus(void); +void PartyMenuDoPrintGenderIcon(u16 species, u8 gender, u8 c, u8 monIndex, u8 *nickname); +void PartyMenuPrintGenderIcon(u8 monIndex, u8 b, struct Pokemon *pokemon); void PartyMenuDoPrintHP(u8 monIndex, u8 b, u16 currentHP, u16 maxHP); void PartyMenuTryPrintMonsHP(void); void nullsub_13(void); -- cgit v1.2.3 From bbdef672b72d069a44f332c8c550edfe8bab25c5 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 21 Sep 2017 21:06:01 -0700 Subject: Decompile PartyMenuPrintMonLevelOrStatus funcs --- include/party_menu.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index 2c19dc0a2..5d4474a56 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -106,8 +106,8 @@ void PrintPartyMenuMonNicknames(void); void PrintPartyMenuMonNicknames(void); void GetMonNickname(struct Pokemon *mon, u8 *nickname); void PartyMenuClearLevelStatusTilemap(); -void PartyMenuPrintMonLevelOrStatus(); -void PartyMenuPrintMonsLevelOrStatus(void); +void PartyMenuPrintLevel(u8 monIndex, u8 b, struct Pokemon *pokemon); +void PartyMenuPrintMonLevelOrStatus(u8 monIndex, struct Pokemon *pokemon); void PartyMenuPrintMonsLevelOrStatus(void); void PartyMenuDoPrintGenderIcon(u16 species, u8 gender, u8 c, u8 monIndex, u8 *nickname); void PartyMenuPrintGenderIcon(u8 monIndex, u8 b, struct Pokemon *pokemon); -- cgit v1.2.3 From 6b8d5537e2639756d77f60bea8f4872d9abe34f1 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 22 Sep 2017 20:56:29 -0700 Subject: Decompile several more party_menu funcs --- include/party_menu.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index 5d4474a56..6a251cb65 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -104,8 +104,9 @@ void SetHeldItemIconVisibility(); void TryPrintPartyMenuMonNickname(); void PrintPartyMenuMonNicknames(void); void PrintPartyMenuMonNicknames(void); -void GetMonNickname(struct Pokemon *mon, u8 *nickname); -void PartyMenuClearLevelStatusTilemap(); +u8 *GetMonNickname(struct Pokemon *pokemon, u8 *stringBuffer); +void PartyMenuPutStatusTilemap(u8 monIndex, u8 b, u8 status); +void PartyMenuDoPrintLevel(u8 monIndex, u8 b, u8 level); void PartyMenuPrintLevel(u8 monIndex, u8 b, struct Pokemon *pokemon); void PartyMenuPrintMonLevelOrStatus(u8 monIndex, struct Pokemon *pokemon); void PartyMenuPrintMonsLevelOrStatus(void); -- cgit v1.2.3 From e27de6bda3ab58f4190582532b399620082e385a Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 22 Sep 2017 21:21:48 -0700 Subject: Decompile party_menu nickname printing funcs --- include/party_menu.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index 6a251cb65..cc1f9f772 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -101,8 +101,8 @@ void CreateHeldItemIcons_806DC34(); // undefined args void CreateHeldItemIcons_806DC34(); u8 GetMonIconSpriteId_maybe(); void SetHeldItemIconVisibility(); -void TryPrintPartyMenuMonNickname(); -void PrintPartyMenuMonNicknames(void); +void PartyMenuDoPrintMonNickname(u8 monIndex, int b, const u8 *nameBuffer); +void PrintPartyMenuMonNickname(u8 monIndex, u8 b, struct Pokemon *pokemon); void PrintPartyMenuMonNicknames(void); u8 *GetMonNickname(struct Pokemon *pokemon, u8 *stringBuffer); void PartyMenuPutStatusTilemap(u8 monIndex, u8 b, u8 status); -- cgit v1.2.3 From c3792f2bd4c6ee3fecea548f45b2a54a9b468ab1 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 23 Sep 2017 15:08:32 -0700 Subject: Decompile HeldItemIcon funcs in party_menu --- include/party_menu.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index cc1f9f772..cf6d06650 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -97,10 +97,8 @@ void SetMonIconAnim(); void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *); void LoadHeldItemIconGraphics(void); void PartyMenuTryGiveMonHeldItem(u8 taskId, u16 newItem, TaskFunc c); -void CreateHeldItemIcons_806DC34(); // undefined args -void CreateHeldItemIcons_806DC34(); -u8 GetMonIconSpriteId_maybe(); -void SetHeldItemIconVisibility(); +void CreateHeldItemIcons_806DC34(u8 taskId); +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); -- cgit v1.2.3 From 31748e93d8be0b5e8410c2f11b5719d60c2162db Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 24 Sep 2017 13:05:06 -0700 Subject: More party_menu decomp --- include/party_menu.h | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index cf6d06650..510c12616 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -58,11 +58,9 @@ struct Unk2001000 u8 unk5; u8 unk6; u8 unk7; - u8 unk8; - u8 unk9; - u8 unkA; - u8 unkB; - void* unkC; + s16 unk8; + s16 unkA; + TaskFunc unkC; u16 array[53561]; }; @@ -85,18 +83,23 @@ u8 sub_806BD58(u8, u8); u8 sub_806BD58(u8, u8); u16 sub_806BD80(u8); void task_pc_turn_off(); -void sub_806BF74(u8 arg0, u8 arg1); +void sub_806BF74(u8 arg0, s8 arg1); void sub_806C994(u8 arg0, u8 arg1); u8 sub_806CA38(u8 taskID); void sub_806CB74(u8 taskId); void sub_806CCE4(void); void sub_806CD44(u8 taskId); +void sub_806D3B4(u8 taskId, u16 species1, u16 species2); +void sub_806D4AC(u8 taskId, u16 species, u8 c); +void sub_806D50C(u8 taskId, u8 monIndex); void sub_806D538(u8 arg0, u8 arg1); void sub_806D5A4(void); -void SetMonIconAnim(); -void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *); +void SetMonIconAnim(u8 spriteId, struct Pokemon *pokemon); +void CreatePartyMenuMonIcon(u8 taskId, u8 monIndex, u8 c, struct Pokemon *pokemon); +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 CreateHeldItemIcons_806DC34(u8 taskId); void SetHeldItemIconVisibility(u8 a, u8 monIndex); void PartyMenuDoPrintMonNickname(u8 monIndex, int b, const u8 *nameBuffer); @@ -173,7 +176,7 @@ void sub_806CD5C(u8 taskId); void DoTakeMail(u8 taskId, TaskFunc func); void PartyMenuTryGiveMonHeldItem_806ECE8(u8 taskId, TaskFunc func); void PartyMenuTryGiveMonMail(u8 taskId, TaskFunc func); -void sub_806D668(u8 partyID); +void sub_806D668(u8 monIndex); void TaughtMove(u8 taskId); void StopTryingToTeachMove_806F588(u8 taskId); -- cgit v1.2.3 From c2d448767c6de4c9028454f279c8e43d2ecb174c Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 7 Oct 2017 16:33:02 -0700 Subject: Finish decompiling party_menu, and remove its asm/ file --- include/party_menu.h | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index 510c12616..74ef72519 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -15,11 +15,11 @@ struct PartyPopupMenu struct Unk201B000 { - //u8 filler0[0x260]; struct Pokemon unk0[6]; - u8 filler258[1]; + u8 unk258; u8 unk259; - u8 filler25A[6]; + u8 filler25A[2]; + TaskFunc taskFunc; u8 unk260; u8 unk261; u8 unk262; @@ -71,20 +71,23 @@ extern u8 ewram[]; #define EWRAM_1B000 ewram1B000_alt void sub_806AEDC(void); -void sub_806AF4C(u8 arg0, u8 arg1, void* arg2, u8 arg3); -void OpenPartyMenu(u8, u8); -void OpenPartyMenu(); +void sub_806AF4C(u8 a, u8 battleFlags, TaskFunc func, u8 d); +void OpenPartyMenu(u8 a, u8 b); bool8 sub_806B124(void); -u8 IsLinkDoubleBattle(void); +bool8 IsLinkDoubleBattle(void); u8 sub_806B58C(u8); u8 sub_806B58C(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); -void task_pc_turn_off(); -void sub_806BF74(u8 arg0, s8 arg1); -void sub_806C994(u8 arg0, u8 arg1); +u16 sub_806BD80(u8 taskId); +u16 sub_806BE38(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 sub_806C994(u8 taskId, u8 b); u8 sub_806CA38(u8 taskID); void sub_806CB74(u8 taskId); void sub_806CCE4(void); -- cgit v1.2.3 From 6093e4f33ade76a8abcc258a420a7fa09749ab7b Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 7 Oct 2017 16:53:00 -0700 Subject: Cleanup externs in party_menu.c --- include/party_menu.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index 74ef72519..8b4b592db 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -70,6 +70,7 @@ extern u8 ewram[]; #define ewram1B000_alt (*(struct Struct201B000 *)(ewram + 0x1B000)) #define EWRAM_1B000 ewram1B000_alt +void sub_806C658(u8 taskId, s8 directionPressed); void sub_806AEDC(void); void sub_806AF4C(u8 a, u8 battleFlags, TaskFunc func, u8 d); void OpenPartyMenu(u8 a, u8 b); -- cgit v1.2.3 From 62eb504ec9371ab8505d4da030412fab30a87982 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 8 Oct 2017 12:44:03 -0700 Subject: Decompile InitPartyMenu --- include/party_menu.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index 8b4b592db..3dc46992e 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -42,7 +42,8 @@ struct Struct201B000 u8 unk262; s16 unk264; s16 unk266; - u8 filler268[10]; + s16 unk268; + u8 filler26A[8]; u16 unk272; u8 filler274[14]; u16 unk282; @@ -74,7 +75,7 @@ void sub_806C658(u8 taskId, s8 directionPressed); void sub_806AEDC(void); void sub_806AF4C(u8 a, u8 battleFlags, TaskFunc func, u8 d); void OpenPartyMenu(u8 a, u8 b); -bool8 sub_806B124(void); +bool8 InitPartyMenu(void); bool8 IsLinkDoubleBattle(void); u8 sub_806B58C(u8); u8 sub_806B58C(u8); -- cgit v1.2.3 From 254d1f08f38c76f1b5444676dcd68404b1d06c77 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 8 Oct 2017 16:56:57 -0700 Subject: Decompile sub_806B58C --- include/party_menu.h | 1 - 1 file changed, 1 deletion(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index 3dc46992e..cf227335b 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -78,7 +78,6 @@ void OpenPartyMenu(u8 a, u8 b); bool8 InitPartyMenu(void); bool8 IsLinkDoubleBattle(void); u8 sub_806B58C(u8); -u8 sub_806B58C(u8); void sub_806B908(void); void sub_806BC3C(u8, u8); void sub_806BCE8(void); -- cgit v1.2.3 From a871ce87a74421df64a9ad381d37dc32ff9bdc6d Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 9 Oct 2017 09:56:57 -0700 Subject: Match PartyMenuTryGiveMonMail --- include/party_menu.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index cf227335b..cefe7de4f 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -104,6 +104,7 @@ 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 CreateHeldItemIcon_806DCD4(u8 taskId, u8 monIndex, u16 item); void CreateHeldItemIcons_806DC34(u8 taskId); void SetHeldItemIconVisibility(u8 a, u8 monIndex); void PartyMenuDoPrintMonNickname(u8 monIndex, int b, const u8 *nameBuffer); -- cgit v1.2.3 From 1c16828c55265e9b68b55778c3ff320b3e975965 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 9 Oct 2017 18:43:44 -0700 Subject: Document party menu handlers, text oam, and menu types --- include/party_menu.h | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index 6f0077f8c..6bb9b87f8 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -4,6 +4,28 @@ #include "menu.h" #include "task.h" + +enum +{ + PARTY_MENU_TYPE_STANDARD, + PARTY_MENU_TYPE_BATTLE, + PARTY_MENU_TYPE_CONTEST, + PARTY_MENU_TYPE_IN_GAME_TRADE, + PARTY_MENU_TYPE_BATTLE_TOWER, + PARTY_MENU_TYPE_LINK_MULTI_BATTLE, + PARTY_MENU_TYPE_DAYCARE, + PARTY_MENU_TYPE_MOVE_TUTOR, +}; + +// The party menu screen is presented differently depending on which menu layout is set. +enum +{ + PARTY_MENU_LAYOUT_STANDARD, + PARTY_MENU_LAYOUT_DOUBLE_BATTLE, + PARTY_MENU_LAYOUT_LINK_DOUBLE_BATTLE, + PARTY_MENU_LAYOUT_MULTI_BATTLE, +}; + struct PartyPopupMenu { /*0x0*/u8 numChoices; // number of menu choices @@ -71,10 +93,10 @@ extern u8 ewram[]; #define ewram1B000_alt (*(struct Struct201B000 *)(ewram + 0x1B000)) #define EWRAM_1B000 ewram1B000_alt +void CB2_PartyMenuMain(void); void sub_806C658(u8 taskId, s8 directionPressed); -void sub_806AEDC(void); void sub_806AF4C(u8 a, u8 battleFlags, TaskFunc func, u8 d); -void OpenPartyMenu(u8 a, u8 b); +void OpenPartyMenu(u8 menuType, u8 battleFlags); bool8 InitPartyMenu(void); bool8 IsLinkDoubleBattle(void); u8 sub_806B58C(u8); -- cgit v1.2.3 From c5687e5324c243e5043b040bf9920ea39481adc3 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 9 Oct 2017 23:37:32 -0700 Subject: Document part of menu setup struct and accompanying functions --- include/party_menu.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'include/party_menu.h') diff --git a/include/party_menu.h b/include/party_menu.h index 6bb9b87f8..f480420a3 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -38,11 +38,11 @@ struct PartyPopupMenu struct Unk201B000 { struct Pokemon unk0[6]; - u8 unk258; - u8 unk259; + u8 menuType; + u8 promptTextId; u8 filler25A[2]; - TaskFunc taskFunc; - u8 unk260; + TaskFunc menuHandler; + u8 menuHandlerTaskId; u8 unk261; u8 unk262; u8 unk263; @@ -57,13 +57,13 @@ struct Unk201B000 struct Struct201B000 { u8 filler0[0x259]; - u8 unk259; + u8 promptTextId; u8 filler25A[6]; - u8 unk260; + u8 menuHandlerTaskId; u8 unk261; u8 unk262; - s16 unk264; - s16 unk266; + s16 setupState; + s16 monIndex; s16 unk268; u8 filler26A[8]; u16 unk272; @@ -95,7 +95,7 @@ extern u8 ewram[]; void CB2_PartyMenuMain(void); void sub_806C658(u8 taskId, s8 directionPressed); -void sub_806AF4C(u8 a, u8 battleFlags, TaskFunc func, u8 d); +void SetPartyMenuSettings(u8 menuType, u8 battleTypeFlags, TaskFunc menuHandlerFunc, u8 textId); void OpenPartyMenu(u8 menuType, u8 battleFlags); bool8 InitPartyMenu(void); bool8 IsLinkDoubleBattle(void); @@ -118,7 +118,7 @@ void sub_806CD44(u8 taskId); void sub_806D3B4(u8 taskId, u16 species1, u16 species2); void sub_806D4AC(u8 taskId, u16 species, u8 c); void sub_806D50C(u8 taskId, u8 monIndex); -void sub_806D538(u8 arg0, u8 arg1); +void PrintPartyMenuPromptText(u8 textId, u8 b); void sub_806D5A4(void); void SetMonIconAnim(u8 spriteId, struct Pokemon *pokemon); void CreatePartyMenuMonIcon(u8 taskId, u8 monIndex, u8 c, struct Pokemon *pokemon); -- cgit v1.2.3 From 3a5020764fe3f26e8003487eff5d25b425a277a7 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 10 Oct 2017 19:21:23 -0700 Subject: Add more party_menu documentation --- include/party_menu.h | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) (limited to 'include/party_menu.h') 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); -- cgit v1.2.3