diff options
Diffstat (limited to 'include/party_menu.h')
-rw-r--r-- | include/party_menu.h | 120 |
1 files changed, 64 insertions, 56 deletions
diff --git a/include/party_menu.h b/include/party_menu.h index e3f5c62f3..6f0077f8c 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -1,36 +1,31 @@ #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 -#define DATA_COUNT (6) 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; 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; @@ -47,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; @@ -63,11 +59,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]; }; @@ -77,58 +71,66 @@ 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 arg0, u8 arg1, void* arg2, u8 arg3); -void OpenPartyMenu(u8, u8); -void OpenPartyMenu(); -bool8 sub_806B124(void); -u8 IsLinkDoubleBattle(void); -u8 sub_806B58C(u8); +void sub_806AF4C(u8 a, u8 battleFlags, TaskFunc func, u8 d); +void OpenPartyMenu(u8 a, u8 b); +bool8 InitPartyMenu(void); +bool8 IsLinkDoubleBattle(void); 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, u8 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); 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 CreateHeldItemIcons_806DC34(); // undefined args -void CreateHeldItemIcons_806DC34(); -void CreateHeldItemIcons(u8 *, u8 *, u8); -u8 GetMonIconSpriteId_maybe(); -void SetHeldItemIconVisibility(); -void TryPrintPartyMenuMonNickname(); -void PrintPartyMenuMonNicknames(void); +void SetMonIconSpriteId_maybe(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); +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 GetMonNickname(struct Pokemon *mon, u8 *nickname); -void PartyMenuClearLevelStatusTilemap(); -void PartyMenuPrintMonLevelOrStatus(); -void PartyMenuPrintMonsLevelOrStatus(void); +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); -void PartyMenuDoPrintHP(u8, int, u16, u16); +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); +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); -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(); -void DoEvolutionStoneItemEffect(u8, u16, TaskFunc); -u8 GetItemEffectType(); +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); +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); @@ -168,13 +170,19 @@ 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 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); 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); |