summaryrefslogtreecommitdiff
path: root/include/party_menu.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/party_menu.h')
-rw-r--r--include/party_menu.h149
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