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') 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') 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 +- include/pokemon.h | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'include') 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); diff --git a/include/pokemon.h b/include/pokemon.h index 9c6f16442..29fd763db 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -520,7 +520,7 @@ void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot); void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot); void GiveMonInitialMoveset(struct Pokemon *mon); void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon); -u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 a2); +u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove); void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move); void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move); @@ -566,6 +566,8 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex); u8 GetNature(struct Pokemon *mon); u8 GetNatureFromPersonality(u32 personality); +u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem); + u16 nature_stat_mod(u8 nature, u16 n, u8 statIndex); void MonRestorePP(struct Pokemon *); -- 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') 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') 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/global.berry.h | 46 +++++++++++++++++++++++----------------------- include/menu.h | 3 ++- include/party_menu.h | 23 +++++++++-------------- include/pokemon_menu.h | 3 +++ 4 files changed, 37 insertions(+), 38 deletions(-) (limited to 'include') diff --git a/include/global.berry.h b/include/global.berry.h index 6632e55e2..096d8b1d8 100644 --- a/include/global.berry.h +++ b/include/global.berry.h @@ -3,33 +3,33 @@ struct Berry { - const u8 name[7]; - u8 firmness; - u16 size; - u8 maxYield; - u8 minYield; - const u8 *description1; - const u8 *description2; - u8 stageDuration; - u8 spicy; - u8 dry; - u8 sweet; - u8 bitter; - u8 sour; - u8 smoothness; + /*0x00*/const u8 name[7]; + /*0x07*/u8 firmness; + /*0x08*/u16 size; + /*0x0A*/u8 maxYield; + /*0x0B*/u8 minYield; + /*0x0C*/const u8 *description1; + /*0x10*/const u8 *description2; + /*0x14*/u8 stageDuration; + /*0x15*/u8 spicy; + /*0x16*/u8 dry; + /*0x17*/u8 sweet; + /*0x18*/u8 bitter; + /*0x19*/u8 sour; + /*0x1A*/u8 smoothness; }; struct EnigmaBerry { - struct Berry berry; - u8 pic[(6 * 6) * TILE_SIZE_4BPP]; - u16 palette[16]; - u8 description1[45]; - u8 description2[45]; - u8 itemEffect[18]; - u8 holdEffect; - u8 holdEffectParam; - u32 checksum; + /*0x000*/struct Berry berry; + /*0x01B*/u8 pic[(6 * 6) * TILE_SIZE_4BPP]; + /*0x49C*/u16 palette[16]; + /*0x4BC*/u8 description1[45]; + /*0x4E9*/u8 description2[45]; + /*0x516*/u8 itemEffect[18]; + /*0x528*/u8 holdEffect; + /*0x529*/u8 holdEffectParam; + /*0x52C*/u32 checksum; }; struct BattleEnigmaBerry diff --git a/include/menu.h b/include/menu.h index 3cf47b9b8..9a5ca62a0 100644 --- a/include/menu.h +++ b/include/menu.h @@ -1,6 +1,7 @@ #ifndef GUARD_MENU_H #define GUARD_MENU_H +#include "task.h" #include "text.h" struct MenuAction @@ -12,7 +13,7 @@ struct MenuAction struct MenuAction2 { const u8 *text; - void (*func)(u8); + TaskFunc func; }; extern const struct MenuAction gMenuYesNoItems[]; 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 diff --git a/include/pokemon_menu.h b/include/pokemon_menu.h index 06f905577..1c8e6772f 100644 --- a/include/pokemon_menu.h +++ b/include/pokemon_menu.h @@ -1,6 +1,8 @@ #ifndef GUARD_POKEMON_MENU_H #define GUARD_POKEMON_MENU_H +#include "menu.h" + #define POKEMENU_FIRST_FIELD_MOVE_ID 10 enum @@ -36,6 +38,7 @@ extern void (*gUnknown_03005CE4)(void); 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 FieldCallback_Teleport(void); void sub_808AD58(void); -- 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') 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') 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') 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/battle_interface.h | 2 +- include/party_menu.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/battle_interface.h b/include/battle_interface.h index 8230c7502..db41ee735 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -29,7 +29,7 @@ u8 sub_8044804(u8, const struct BattleInterfaceStruct2 *, u8, u8); void sub_8044CA0(u8); void sub_8045A5C(u8, struct Pokemon *, u8); s32 sub_8045C78(u8, u8, u8, u8); -s16 sub_80460C8(struct BattleInterfaceStruct1 *, int *, void *, int); +s16 sub_80460C8(struct BattleInterfaceStruct1 *, int *, u16 *, int); u8 GetScaledHPFraction(s16, s16, u8); u8 GetHPBarLevel(s16, s16); void sub_80440EC(u8 a, s16 b, u8 c); 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 ++ include/pokemon.h | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'include') 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); diff --git a/include/pokemon.h b/include/pokemon.h index 29fd763db..2266c2ea4 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -598,8 +598,10 @@ bool8 IsOtherTrainer(u32, u8 *); void sub_8040B8C(void); void SetWildMonHeldItem(void); u8 *sub_8040D08(); -bool32 sub_8040D3C(u16 species, u8 *name, u8 language); +bool32 ShouldHideGenderIconForLanguage(u16 species, u8 *name, u8 language); +bool32 ShouldHideGenderIcon(u16 species, u8 *name); s8 sub_8040A54(struct Pokemon *, u8); u16 GetMonEVCount(struct Pokemon *); + #endif // GUARD_POKEMON_H -- 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') 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') 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') 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') 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 ++++++++++++--------- include/pokemon_icon.h | 3 +-- 2 files changed, 13 insertions(+), 11 deletions(-) (limited to 'include') 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); diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 98f984564..62b3eb438 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -1,7 +1,6 @@ #ifndef GUARD_POKEMON_ICON_H #define GUARD_POKEMON_ICON_H -u8 CreateMonIcon(); u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4); u16 GetUnownLetterByPersonality(u32); u16 sub_809D4A8(u16); @@ -9,6 +8,6 @@ void sub_809D510(struct Sprite *); void sub_809D51C(void); void sub_809D580(u16); void sub_809D608(u16); -void UpdateMonIconFrame(struct Sprite *sprite); +void sub_809D824(struct Sprite *sprite, u8 animNum); #endif // GUARD_POKEMON_ICON_H -- 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/battle.h | 2 ++ include/party_menu.h | 25 ++++++++++++++----------- 2 files changed, 16 insertions(+), 11 deletions(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 47cb7cf8e..86e15ad49 100644 --- a/include/battle.h +++ b/include/battle.h @@ -19,6 +19,8 @@ #define BATTLE_TYPE_LEGENDARY 0x2000 #define BATTLE_TYPE_REGI 0x4000 +#define BATTLE_TYPE_LINK_DOUBLE (BATTLE_TYPE_MULTI | BATTLE_TYPE_TRAINER | BATTLE_TYPE_LINK | BATTLE_TYPE_DOUBLE) + #define BATTLE_WON 0x1 #define BATTLE_LOST 0x2 #define BATTLE_DREW 0x3 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 + include/pokemon_icon.h | 3 +++ 2 files changed, 4 insertions(+) (limited to 'include') 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); diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 62b3eb438..7e26c1c9b 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -1,6 +1,8 @@ #ifndef GUARD_POKEMON_ICON_H #define GUARD_POKEMON_ICON_H +u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality); +u8 UpdateMonIconFrame(struct Sprite *sprite); u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4); u16 GetUnownLetterByPersonality(u32); u16 sub_809D4A8(u16); @@ -8,6 +10,7 @@ void sub_809D510(struct Sprite *); void sub_809D51C(void); void sub_809D580(u16); void sub_809D608(u16); +void sub_809D62C(struct Sprite *sprite); void sub_809D824(struct Sprite *sprite, u8 animNum); #endif // GUARD_POKEMON_ICON_H -- cgit v1.2.3 From 36732986679e93a4ceb454d494fc2aa1d5e95f6c Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 7 Oct 2017 20:21:11 -0700 Subject: Move all data/party_menu.s data into party_menu.c --- include/battle_party_menu.h | 1 + include/items.h | 3 +++ include/pokemon_menu.h | 1 + include/script_pokemon_80F9.h | 4 ++++ 4 files changed, 9 insertions(+) (limited to 'include') diff --git a/include/battle_party_menu.h b/include/battle_party_menu.h index 71bd2cf51..c3bebbcd4 100644 --- a/include/battle_party_menu.h +++ b/include/battle_party_menu.h @@ -5,5 +5,6 @@ extern u8 unk_2000000[]; #define EWRAM_1609D unk_2000000[0x1609D] void SetUpBattlePokemonMenu(u8); +bool8 SetUpBattlePartyMenu(void); #endif diff --git a/include/items.h b/include/items.h index 69515f18e..44b0f2013 100644 --- a/include/items.h +++ b/include/items.h @@ -386,4 +386,7 @@ enum ITEM_OLD_SEA_MAP, // 0x178 }; +#define NUM_TECHNICAL_MACHINES 50 +#define NUM_HIDDEN_MACHINES 8 + #endif // GUARD_ITEMS_H diff --git a/include/pokemon_menu.h b/include/pokemon_menu.h index 1c8e6772f..5cac57d5d 100644 --- a/include/pokemon_menu.h +++ b/include/pokemon_menu.h @@ -36,6 +36,7 @@ enum extern u8 gLastFieldPokeMenuOpened; extern void (*gUnknown_03005CE4)(void); +void sub_8089CD4(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); diff --git a/include/script_pokemon_80F9.h b/include/script_pokemon_80F9.h index d65c99c15..7124c1916 100644 --- a/include/script_pokemon_80F9.h +++ b/include/script_pokemon_80F9.h @@ -13,5 +13,9 @@ void sub_80F9A8C(u8); void sub_80F9C00(void); void sub_80F9E1C(void); void sub_80F99CC(void); +void sub_80F9C6C(u8 var); +bool8 sub_80F9ACC(void); +void sub_80F9E64(u8 var); +bool8 sub_80F9CE8(void); #endif -- 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 +++-- include/sprite.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'include') 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); diff --git a/include/sprite.h b/include/sprite.h index 5682a7c1d..4fda9b30d 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -257,7 +257,7 @@ void FreeSpriteTiles(struct Sprite *sprite); void FreeSpritePalette(struct Sprite *sprite); void FreeSpriteOamMatrix(struct Sprite *sprite); void DestroySpriteAndFreeResources(struct Sprite *sprite); -void sub_800142C(u32 a1, u32 a2, u16 *a3, u16 a4, u32 a5); +void sub_800142C(u32 a1, u32 a2, const u16 *a3, u16 a4, u32 a5); void AnimateSprite(struct Sprite *sprite); void StartSpriteAnim(struct Sprite *sprite, u8 animNum); void StartSpriteAnimIfDifferent(struct Sprite *sprite, u8 animNum); -- 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') 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') 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/battle_party_menu.h | 2 +- include/choose_party.h | 10 +++++----- include/party_menu.h | 26 ++++++++++++++++++++++++-- include/pokemon_menu.h | 2 +- include/script_pokemon_80F9.h | 10 +++++----- include/sprite.h | 2 +- 6 files changed, 37 insertions(+), 15 deletions(-) (limited to 'include') diff --git a/include/battle_party_menu.h b/include/battle_party_menu.h index c3bebbcd4..200b0c653 100644 --- a/include/battle_party_menu.h +++ b/include/battle_party_menu.h @@ -4,7 +4,7 @@ extern u8 unk_2000000[]; #define EWRAM_1609D unk_2000000[0x1609D] -void SetUpBattlePokemonMenu(u8); +void HandleBattlePartyMenu(u8); bool8 SetUpBattlePartyMenu(void); #endif diff --git a/include/choose_party.h b/include/choose_party.h index e31aa3c02..853202a89 100644 --- a/include/choose_party.h +++ b/include/choose_party.h @@ -3,11 +3,11 @@ void sub_8121E10(void); void sub_8121E34(void); -bool8 sub_8121E78(void); -void sub_81222B0(u8 taskId); -bool8 sub_8122854(void); -void sub_8122A48(u8 taskId); -void sub_8122E0C(u8 taskId); +bool8 SetupBattleTowerPartyMenu(void); +void HandleBattleTowerPartyMenu(u8 taskId); +bool8 SetupLinkMultiBattlePartyMenu(void); +void HandleLinkMultiBattlePartyMenu(u8 taskId); +void HandleDaycarePartyMenu(u8 taskId); void sub_8123138(u8 taskId); #endif // GUARD_CHOOSE_PARTY_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); diff --git a/include/pokemon_menu.h b/include/pokemon_menu.h index 5cac57d5d..9566a7173 100644 --- a/include/pokemon_menu.h +++ b/include/pokemon_menu.h @@ -36,7 +36,7 @@ enum extern u8 gLastFieldPokeMenuOpened; extern void (*gUnknown_03005CE4)(void); -void sub_8089CD4(u8 taskID); +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); diff --git a/include/script_pokemon_80F9.h b/include/script_pokemon_80F9.h index 7124c1916..fa5d57f0e 100644 --- a/include/script_pokemon_80F9.h +++ b/include/script_pokemon_80F9.h @@ -9,13 +9,13 @@ struct UnknownStruct2018000 extern struct UnknownStruct2018000 unk_2018000; -void sub_80F9A8C(u8); +void OpenPartyMenuFromScriptContext(u8 taskId); void sub_80F9C00(void); void sub_80F9E1C(void); void sub_80F99CC(void); -void sub_80F9C6C(u8 var); -bool8 sub_80F9ACC(void); -void sub_80F9E64(u8 var); -bool8 sub_80F9CE8(void); +void HandleSelectPartyMenu(u8 taskId); +bool8 SetupContestPartyMenu(void); +void HandleMoveTutorPartyMenu(u8 taskId); +bool8 SetupMoveTutorPartyMenu(void); #endif diff --git a/include/sprite.h b/include/sprite.h index 54ea02816..769e1584d 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -257,7 +257,7 @@ void FreeSpriteTiles(struct Sprite *sprite); void FreeSpritePalette(struct Sprite *sprite); void FreeSpriteOamMatrix(struct Sprite *sprite); void DestroySpriteAndFreeResources(struct Sprite *sprite); -void sub_800142C(u32 a1, u32 a2, const u16 *a3, u16 a4, u32 a5); +void DrawPartyMenuMonText(u32 a1, u32 a2, const u16 *a3, u16 a4, u32 a5); void AnimateSprite(struct Sprite *sprite); void StartSpriteAnim(struct Sprite *sprite, u8 animNum); void StartSpriteAnimIfDifferent(struct Sprite *sprite, u8 animNum); -- 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') 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 ++++++++++++++++++++++++--------- include/pokemon_menu.h | 2 +- 2 files changed, 25 insertions(+), 10 deletions(-) (limited to 'include') 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); -- cgit v1.2.3