2017-10-12 07:06:19 +00:00
|
|
|
#ifndef GUARD_PARTY_MENU_H
|
|
|
|
#define GUARD_PARTY_MENU_H
|
2018-07-07 17:57:09 +00:00
|
|
|
|
2018-10-18 03:36:18 +00:00
|
|
|
#include "main.h"
|
2018-02-15 11:42:02 +00:00
|
|
|
#include "task.h"
|
2018-07-07 17:57:09 +00:00
|
|
|
|
2019-10-26 01:55:01 +00:00
|
|
|
// seems like the last two fields may have been left as all-purpose vars
|
|
|
|
// and the second of the two just happens to only be used in one case
|
2019-10-17 23:22:03 +00:00
|
|
|
struct PartyMenu
|
2018-12-23 23:02:29 +00:00
|
|
|
{
|
2018-12-18 10:38:08 +00:00
|
|
|
MainCallback exitCallback;
|
2019-10-17 23:22:03 +00:00
|
|
|
TaskFunc task;
|
|
|
|
u8 menuType:4;
|
|
|
|
u8 layout:2;
|
|
|
|
u8 unused:2;
|
2019-05-12 22:41:25 +00:00
|
|
|
s8 slotId;
|
2019-10-17 23:22:03 +00:00
|
|
|
s8 slotId2;
|
|
|
|
u8 action;
|
|
|
|
u16 bagItem;
|
2019-10-26 01:55:01 +00:00
|
|
|
s16 data1; // used variously as a moveId, counter, moveSlotId, or cursorPos
|
|
|
|
s16 learnMoveState; // data2, used only as a learn move state
|
2018-02-15 09:59:26 +00:00
|
|
|
};
|
|
|
|
|
2019-10-17 23:22:03 +00:00
|
|
|
extern struct PartyMenu gPartyMenu;
|
2019-10-26 01:55:01 +00:00
|
|
|
extern bool8 gPartyMenuUseExitCallback;
|
|
|
|
extern u8 gSelectedMonPartyId;
|
2018-12-23 23:02:29 +00:00
|
|
|
extern MainCallback gPostMenuFieldCallback;
|
|
|
|
extern u8 gSelectedOrderFromParty[4];
|
2019-10-17 23:22:03 +00:00
|
|
|
extern u8 gBattlePartyCurrentOrder[3];
|
2018-02-15 09:59:26 +00:00
|
|
|
|
2019-10-17 23:22:03 +00:00
|
|
|
extern void (*gItemUseCB)(u8, TaskFunc);
|
2019-02-02 11:44:00 +00:00
|
|
|
|
2018-12-24 20:59:05 +00:00
|
|
|
extern const u16 gTutorMoves[];
|
2018-08-10 07:42:06 +00:00
|
|
|
|
2019-10-17 23:22:03 +00:00
|
|
|
void AnimatePartySlot(u8 slot, u8 animNum);
|
2018-12-23 23:02:29 +00:00
|
|
|
bool8 IsMultiBattle(void);
|
2018-01-02 01:21:30 +00:00
|
|
|
u8 GetCursorSelectionMonId(void);
|
2019-10-17 23:22:03 +00:00
|
|
|
u8 GetPartyMenuType(void);
|
|
|
|
void Task_HandleChooseMonInput(u8 taskId);
|
2018-12-23 23:02:29 +00:00
|
|
|
u8* GetMonNickname(struct Pokemon *mon, u8 *dest);
|
2019-10-17 23:22:03 +00:00
|
|
|
u8 DisplayPartyMenuMessage(const u8* str, bool8 keepOpen);
|
|
|
|
bool8 IsPartyMenuTextPrinterActive(void);
|
|
|
|
void PartyMenuModifyHP(u8 taskId, u8 slot, s8 c, s16 HPDifference, TaskFunc func);
|
|
|
|
u8 GetAilmentFromStatus(u32 status);
|
2019-03-03 21:50:51 +00:00
|
|
|
u8 GetMonAilment(struct Pokemon *mon);
|
2019-10-05 03:31:25 +00:00
|
|
|
void DisplayPartyMenuStdMessage(u32 stringID);
|
2018-06-16 12:04:29 +00:00
|
|
|
bool8 FieldCallback_PrepareFadeInFromMenu(void);
|
2019-10-17 23:22:03 +00:00
|
|
|
void CB2_ReturnToPartyMenuFromFlyMap(void);
|
2018-12-23 23:02:29 +00:00
|
|
|
void LoadHeldItemIcons(void);
|
2019-10-07 02:58:25 +00:00
|
|
|
void DrawHeldItemIconsForTrade(u8 *a, u8 *b, u8 c);
|
2019-10-17 23:22:03 +00:00
|
|
|
void CB2_ShowPartyMenuForItemUse(void);
|
2018-12-23 23:02:29 +00:00
|
|
|
void ItemUseCB_Medicine(u8 taskId, TaskFunc task);
|
2019-10-17 23:22:03 +00:00
|
|
|
void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task);
|
|
|
|
void ItemUseCB_PPRecovery(u8 taskId, TaskFunc task);
|
|
|
|
void ItemUseCB_PPUp(u8 taskId, TaskFunc task);
|
2018-12-23 23:02:29 +00:00
|
|
|
u16 ItemIdToBattleMoveId(u16 item);
|
2018-12-24 20:59:05 +00:00
|
|
|
bool8 IsMoveHm(u16 move);
|
|
|
|
bool8 MonKnowsMove(struct Pokemon *mon, u16 move);
|
2019-10-17 23:22:03 +00:00
|
|
|
void ItemUseCB_TMHM(u8 taskId, TaskFunc task);
|
|
|
|
void ItemUseCB_RareCandy(u8 taskId, TaskFunc task);
|
|
|
|
void ItemUseCB_SacredAsh(u8 taskId, TaskFunc task);
|
|
|
|
void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc task);
|
2018-12-23 23:02:29 +00:00
|
|
|
u8 GetItemEffectType(u16 item);
|
|
|
|
void CB2_PartyMenuFromStartMenu(void);
|
2019-10-17 23:22:03 +00:00
|
|
|
void CB2_ChooseMonToGiveItem(void);
|
|
|
|
void ChooseMonToGiveMailFromMailbox(void);
|
2019-02-11 01:42:50 +00:00
|
|
|
void InitChooseHalfPartyForBattle(u8 unused);
|
2019-10-17 23:22:03 +00:00
|
|
|
void ClearSelectedPartyOrder(void);
|
|
|
|
void ChooseMonForTradingBoard(u8 initArg, MainCallback callback);
|
|
|
|
void ChooseMonForMoveTutor(void);
|
2019-10-11 08:14:09 +00:00
|
|
|
void ChooseMonForWirelessMinigame(void);
|
2018-12-23 23:02:29 +00:00
|
|
|
void OpenPartyMenuInBattle(u8 arg);
|
2019-10-17 23:22:03 +00:00
|
|
|
void ChooseMonForInBattleItem(void);
|
2018-12-23 23:02:29 +00:00
|
|
|
void sub_81B8C68(void);
|
|
|
|
void sub_81B8D64(u8 battlerId, u8 multiplayerFlag);
|
2019-10-26 01:55:01 +00:00
|
|
|
void SwitchPartyOrderLinkMulti(u8 battlerId, u8 slot, u8 arrayIndex);
|
2019-10-17 23:22:03 +00:00
|
|
|
void SwitchPartyMonSlots(u8 slot, u8 slot2);
|
2019-10-26 01:55:01 +00:00
|
|
|
u8 GetPartyIdFromBattlePartyId(u8 slot);
|
2019-10-17 23:22:03 +00:00
|
|
|
void ShowPartyMenuToShowcaseMultiBattleParty(void);
|
|
|
|
void ChooseMonForDaycare(void);
|
|
|
|
bool8 CB2_FadeFromPartyMenu(void);
|
|
|
|
void ChooseContestMon(void);
|
|
|
|
void ChoosePartyMon(void);
|
|
|
|
void ChooseMonForMoveRelearner(void);
|
|
|
|
void BattlePyramidChooseMonHeldItems(void);
|
|
|
|
void DoBattlePyramidMonsHaveHeldItem(void);
|
|
|
|
void IsSelectedMonEgg(void);
|
|
|
|
void IsLastMonThatKnowsSurf(void);
|
|
|
|
void MoveDeleterForgetMove(void);
|
|
|
|
void BufferMoveDeleterNicknameAndMove(void);
|
|
|
|
void GetNumMovesSelectedMonHas(void);
|
|
|
|
void MoveDeleterChooseMoveToForget(void);
|
2018-09-11 02:04:19 +00:00
|
|
|
|
2017-10-12 07:06:19 +00:00
|
|
|
#endif // GUARD_PARTY_MENU_H
|