2017-10-12 08:06:19 +01:00
|
|
|
#ifndef GUARD_PARTY_MENU_H
|
|
|
|
#define GUARD_PARTY_MENU_H
|
2018-07-07 18:57:09 +01:00
|
|
|
|
2018-10-18 04:36:18 +01:00
|
|
|
#include "main.h"
|
2018-02-15 11:42:02 +00:00
|
|
|
#include "task.h"
|
2018-07-07 18:57:09 +01:00
|
|
|
|
2019-10-26 02:55:01 +01: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-18 00:22:03 +01:00
|
|
|
struct PartyMenu
|
2018-12-23 23:02:29 +00:00
|
|
|
{
|
2018-12-18 10:38:08 +00:00
|
|
|
MainCallback exitCallback;
|
2019-10-18 00:22:03 +01:00
|
|
|
TaskFunc task;
|
|
|
|
u8 menuType:4;
|
|
|
|
u8 layout:2;
|
2019-05-12 23:41:25 +01:00
|
|
|
s8 slotId;
|
2019-10-18 00:22:03 +01:00
|
|
|
s8 slotId2;
|
|
|
|
u8 action;
|
|
|
|
u16 bagItem;
|
2019-10-26 02:55:01 +01: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-18 00:22:03 +01:00
|
|
|
extern struct PartyMenu gPartyMenu;
|
2019-10-26 02:55:01 +01:00
|
|
|
extern bool8 gPartyMenuUseExitCallback;
|
|
|
|
extern u8 gSelectedMonPartyId;
|
2018-12-23 23:02:29 +00:00
|
|
|
extern MainCallback gPostMenuFieldCallback;
|
2020-04-09 20:18:53 +01:00
|
|
|
extern u8 gSelectedOrderFromParty[MAX_FRONTIER_PARTY_SIZE];
|
|
|
|
extern u8 gBattlePartyCurrentOrder[PARTY_SIZE / 2];
|
2018-02-15 09:59:26 +00:00
|
|
|
|
2019-10-18 00:22:03 +01: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 08:42:06 +01:00
|
|
|
|
2019-10-18 00:22:03 +01: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-18 00:22:03 +01: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-18 00:22:03 +01:00
|
|
|
u8 DisplayPartyMenuMessage(const u8* str, bool8 keepOpen);
|
|
|
|
bool8 IsPartyMenuTextPrinterActive(void);
|
2019-10-31 18:11:55 +00:00
|
|
|
void PartyMenuModifyHP(u8 taskId, u8 slot, s8 hpIncrement, s16 HPDifference, TaskFunc task);
|
2019-10-18 00:22:03 +01:00
|
|
|
u8 GetAilmentFromStatus(u32 status);
|
2019-03-03 21:50:51 +00:00
|
|
|
u8 GetMonAilment(struct Pokemon *mon);
|
2019-10-31 18:11:55 +00:00
|
|
|
void DisplayPartyMenuStdMessage(u32 stringId);
|
2018-06-16 13:04:29 +01:00
|
|
|
bool8 FieldCallback_PrepareFadeInFromMenu(void);
|
2019-10-18 00:22:03 +01:00
|
|
|
void CB2_ReturnToPartyMenuFromFlyMap(void);
|
2018-12-23 23:02:29 +00:00
|
|
|
void LoadHeldItemIcons(void);
|
2019-10-31 18:11:55 +00:00
|
|
|
void DrawHeldItemIconsForTrade(u8 *partyCounts, u8 *partySpriteIds, u8 whichParty);
|
2019-10-18 00:22:03 +01:00
|
|
|
void CB2_ShowPartyMenuForItemUse(void);
|
2018-12-23 23:02:29 +00:00
|
|
|
void ItemUseCB_Medicine(u8 taskId, TaskFunc task);
|
2019-10-18 00:22:03 +01: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-18 00:22:03 +01: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-18 00:22:03 +01:00
|
|
|
void CB2_ChooseMonToGiveItem(void);
|
|
|
|
void ChooseMonToGiveMailFromMailbox(void);
|
2019-02-11 01:42:50 +00:00
|
|
|
void InitChooseHalfPartyForBattle(u8 unused);
|
2019-10-18 00:22:03 +01:00
|
|
|
void ClearSelectedPartyOrder(void);
|
2019-10-31 18:11:55 +00:00
|
|
|
void ChooseMonForTradingBoard(u8 menuType, MainCallback callback);
|
2019-10-18 00:22:03 +01:00
|
|
|
void ChooseMonForMoveTutor(void);
|
2019-10-11 09:14:09 +01:00
|
|
|
void ChooseMonForWirelessMinigame(void);
|
2019-10-31 18:11:55 +00:00
|
|
|
void OpenPartyMenuInBattle(u8 partyAction);
|
2019-10-18 00:22:03 +01:00
|
|
|
void ChooseMonForInBattleItem(void);
|
2019-10-31 18:11:55 +00:00
|
|
|
void BufferBattlePartyCurrentOrder(void);
|
|
|
|
void BufferBattlePartyCurrentOrderBySide(u8 battlerId, u8 flankId);
|
2019-10-26 02:55:01 +01:00
|
|
|
void SwitchPartyOrderLinkMulti(u8 battlerId, u8 slot, u8 arrayIndex);
|
2019-10-18 00:22:03 +01:00
|
|
|
void SwitchPartyMonSlots(u8 slot, u8 slot2);
|
2019-10-26 02:55:01 +01:00
|
|
|
u8 GetPartyIdFromBattlePartyId(u8 slot);
|
2019-10-18 00:22:03 +01: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 03:04:19 +01:00
|
|
|
|
PokedexPlus with HGSS styled UI by TheXaman
more ui, BROKEN atm
type icons in info screen
working topbar
dpad for switching and white mon name
initial working stats screen
additional stats, proper move list array
Working stats screen, all infos in, all icons in, buggy when switching
Fixed sprite bug, proper sprite destruction, works with old compiler
new navigation: info>area>stats
power+accuracy text, change of positions
layout for stats screen, other screen visually broken
new stats layout properly working plus toggle infos
show lvl of LevelUpMove and TM/HM of TMHM_Move
3 dashes for EggMoves and CORRECT icon for TM/HMs pog
improved layout and contest move data!
TutorMoves now available
hold dpad to scroll, pure relieve
search by move code working
6evs, 16 character move names, tripple digit moves, new eduardo layout
working tileset, info screen no correct xy layout for elements yet
new list menu start
new layout working, only missing stats bars
new list, new search
fixed area screen change and fixed "new caught" bug (type icons)
2020-10-31 13:34:37 +00:00
|
|
|
bool8 CanLearnTutorMove(u16, u8);
|
|
|
|
|
2017-10-12 08:06:19 +01:00
|
|
|
#endif // GUARD_PARTY_MENU_H
|