diff options
Diffstat (limited to 'include/party_menu.h')
-rw-r--r-- | include/party_menu.h | 149 |
1 files changed, 71 insertions, 78 deletions
diff --git a/include/party_menu.h b/include/party_menu.h index 19cdda1dc..e2aee442f 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -3,92 +3,85 @@ #include "main.h" #include "task.h" +#include "constants/party_menu.h" -enum { - AILMENT_NONE, - AILMENT_PSN, - AILMENT_PRZ, - AILMENT_SLP, - AILMENT_FRZ, - AILMENT_BRN, - AILMENT_PKRS, - AILMENT_FNT -}; - -enum -{ - PARTY_CHOOSE_MON, - PARTY_MUST_CHOOSE_MON, - PARTY_CANT_SWITCH, - PARTY_USE_ITEM_ON, - PARTY_ABILITY_PREVENTS, - PARTY_GIVE_ITEM, -}; - -struct Struct203B0A0 +struct PartyMenu { MainCallback exitCallback; - TaskFunc unk4; - u8 unk8_0:4; - u8 mode:2; - u8 unk8_2:2; - s8 unk9; - s8 unkA; - u8 unkB; - u16 unkC; - s16 unkE; - s16 unk10; + TaskFunc task; + u8 menuType:4; + u8 layout:2; + u8 unk_8_6:2; + s8 slotId; + s8 slotId2; + u8 action; + u16 bagItem; + s16 data1; // used variously as a moveId, counter, moveSlotId, or cursorPos + s16 learnMoveState; }; -extern struct Struct203B0A0 gUnknown_203B0A0; -extern u8 gUnknown_203B0C0; -extern u8 gUnknown_203B0C1; -extern u8 gUnknown_203B0DC[3]; -extern void (*gUnknown_3005E98)(u8 taskId, TaskFunc func); +extern struct PartyMenu gPartyMenu; +extern bool8 gPartyMenuUseExitCallback; +extern u8 gSelectedMonPartyId; +extern MainCallback gPostMenuFieldCallback; extern u8 gSelectedOrderFromParty[3]; +extern u8 gBattlePartyCurrentOrder[PARTY_SIZE / 2]; -bool8 FieldCallback_PrepareFadeInFromMenu(void); -bool8 MonKnowsMove(struct Pokemon *, u16); -void sub_81B58A8(void); -void DoWallyTutorialBagMenu(void); -u8 pokemon_ailments_get_primary(u32 status); -u16 ItemIdToBattleMoveId(u16 itemId); -void sub_8125B40(u8 taskId, TaskFunc func); -void sub_8124C8C(void); -void sub_8126EDC(void); -void c2_8123744(void); -u8 GetCursorSelectionMonId(void); -void sub_8128370(void); -void sub_811F818(u8 monId, u8 a1); -void sub_8121D0C(u8); -void sub_811FB28(u8 taskId); -void sub_8120760(u8 taskId, u8 a1, s8 a2, s16 amount, TaskFunc followupFunc); -void GetMonNickname(const struct Pokemon * mon, u8 * dest); -void sub_81202F8(const u8 * src, u8 a1); -bool8 sub_8120370(void); -void PartyMenuInit(u8 a, u8 b, u8 c, u8 d, u8 messageId, TaskFunc task, MainCallback callback); -void sub_81252D0(u8 taskId, TaskFunc followUpFunc); -void ItemUseCB_PpRestore(u8 taskId, TaskFunc followUpFunc); -void dp05_pp_up(u8 taskId, TaskFunc followUpFunc); -void dp05_rare_candy(u8 taskId, TaskFunc followUpFunc); -void sub_8126B60(u8 taskId, TaskFunc followUpFunc); -void sub_8126894(u8 taskId, TaskFunc followUpFunc); -void sub_81279E0(void); -void ItemUseCB_Medicine(u8 taskId, TaskFunc followUpFunc); -u8 GetItemEffectType(u16 itemId); -u8 pokemon_order_func(u8); -void sub_8127CAC(void); -void sub_8127DA8(u8 battlerId, u8 multiplayerFlag); -void OpenPartyMenuInBattle(u8 arg); -void sub_8127EC4(u8 battlerId, u8 unk, u8 arrayIndex); +extern void (*gItemUseCB)(u8, TaskFunc); + +void InitPartyMenu(u8 menuType, u8 layout, u8 partyAction, bool8 keepCursorPos, u8 messageId, TaskFunc task, MainCallback callback); +void AnimatePartySlot(u8 slot, u8 animNum); bool8 IsMultiBattle(void); -void sub_8126EDC(void); -void sub_812256C(u8 *partyCount, u8 (*icons)[6], u8 side); -void PartyMenuInit_FromPlayerPc(void); -void CB2_PartyMenuFromStartMenu(void); -void sub_8128198(void); -void sub_8127FF4(u8 slot, u8 slot2); +u8 GetCursorSelectionMonId(void); +u8 GetPartyMenuType(void); +void Task_HandleChooseMonInput(u8 taskId); +u8 *GetMonNickname(struct Pokemon *mon, u8 *dest); +u8 DisplayPartyMenuMessage(const u8 *str, bool8 keepOpen); +bool8 IsPartyMenuTextPrinterActive(void); +void PartyMenuModifyHP(u8 taskId, u8 slot, s8 hpIncrement, s16 hpDifference, TaskFunc task); +u8 GetAilmentFromStatus(u32 status); +u8 GetMonAilment(struct Pokemon *mon); +void DisplayPartyMenuStdMessage(u32 stringId); void LoadHeldItemIcons(void); -void sub_8127968(void); +void DrawHeldItemIconsForTrade(u8 *partyCounts, u8 *partySpriteIds, u8 whichParty); +void SpriteCB_BounceConfirmCancelButton(u8 spriteId, u8 spriteId2, u8 animNum); +void CB2_SelectBagItemToGive(void); +void CB2_GiveHoldItem(void); +bool8 FieldCallback_PrepareFadeInFromMenu(void); +void CB2_ReturnToPartyMenuFromFlyMap(void); +void sub_8124C1C(const u8 *healLocCtrlData); +void CB2_ShowPartyMenuForItemUse(void); +void ItemUseCB_Medicine(u8 taskId, TaskFunc func); +void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func); +void ItemUseCB_PPRecovery(u8 taskId, UNUSED TaskFunc func); +void ItemUseCB_PPUp(u8 taskId, UNUSED TaskFunc func); +u16 ItemIdToBattleMoveId(u16 item); +bool8 IsMoveHm(u16 move); +bool8 MonKnowsMove(struct Pokemon *mon, u16 move); +void ItemUseCB_TMHM(u8 taskId, UNUSED TaskFunc func); +void ItemUseCB_RareCandy(u8 taskId, TaskFunc func); +void ItemUseCB_SacredAsh(u8 taskId, UNUSED TaskFunc func); +void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc func); +u8 GetItemEffectType(u16 item); +void CB2_PartyMenuFromStartMenu(void); +void CB2_ChooseMonToGiveItem(void); +void ChooseMonToGiveMailFromMailbox(void); +void InitChooseHalfPartyForBattle(u8 a1); +void ClearSelectedPartyOrder(void); +void sub_81277F4(u8 menuType, MainCallback callback); +void ChooseMonForMoveTutor(void); +void ChooseMonForWirelessMinigame(void); +void OpenPartyMenuInTutorialBattle(u8 partyAction); +void OpenPartyMenuInBattle(void); +void ChooseMonForInBattleItem(void); +void sub_81279E0(void); +void BufferBattlePartyCurrentOrder(void); +void BufferBattlePartyCurrentOrderBySide(u8 battlerId, u8 flankId); +void SwitchPartyOrderLinkMulti(u8 battlerId, u8 slot, u8 slot2); +void SwitchPartyMonSlots(u8 slot, u8 slot2); +u8 GetPartyIdFromBattlePartyId(u8 battlePartyId); +void ShowPartyMenuToShowcaseMultiBattleParty(void); +void ChooseMonForDaycare(void); +void ChoosePartyMonByMenuType(u8 menuType); #endif // GUARD_PARTY_MENU_H |