2019-03-08 08:17:01 +01:00
|
|
|
#ifndef GUARD_MENU_SPECIALIZED_H
|
|
|
|
#define GUARD_MENU_SPECIALIZED_H
|
2019-03-05 12:06:20 +01:00
|
|
|
|
2019-03-23 16:41:09 +01:00
|
|
|
#include "sprite.h"
|
2019-03-05 12:06:20 +01:00
|
|
|
#include "player_pc.h"
|
2019-03-08 07:56:38 +01:00
|
|
|
#include "list_menu.h"
|
2019-03-17 23:20:40 +01:00
|
|
|
#include "pokemon.h"
|
2020-08-12 17:44:39 +02:00
|
|
|
#include "constants/berry.h"
|
2019-03-05 12:06:20 +01:00
|
|
|
|
2020-08-12 17:44:39 +02:00
|
|
|
#define TAG_CONDITION_MON 100
|
|
|
|
#define TAG_CONDITION_BALL 101
|
|
|
|
#define TAG_CONDITION_CANCEL 102
|
|
|
|
#define TAG_CONDITION_BALL_PLACEHOLDER 103
|
|
|
|
#define TAG_CONDITION_SPARKLE 104
|
2020-08-10 23:05:42 +02:00
|
|
|
|
|
|
|
#define MAX_CONDITION_SPARKLES 10
|
|
|
|
|
2019-03-06 02:32:14 +01:00
|
|
|
struct UnknownSubStruct_81D1ED4
|
|
|
|
{
|
|
|
|
u16 unk0;
|
|
|
|
u16 unk2;
|
|
|
|
};
|
|
|
|
|
2020-08-12 17:44:39 +02:00
|
|
|
struct ConditionGraph
|
2019-03-06 02:32:14 +01:00
|
|
|
{
|
2020-10-11 00:17:34 +02:00
|
|
|
/*0x000*/ u8 stat[4][FLAVOR_COUNT];
|
2020-08-12 17:44:39 +02:00
|
|
|
/*0x014*/ struct UnknownSubStruct_81D1ED4 unk14[4][FLAVOR_COUNT];
|
|
|
|
/*0x064*/ struct UnknownSubStruct_81D1ED4 unk64[10][FLAVOR_COUNT];
|
|
|
|
/*0x12C*/ struct UnknownSubStruct_81D1ED4 unk12C[FLAVOR_COUNT];
|
2019-03-23 16:14:31 +01:00
|
|
|
/*0x140*/ u16 unk140[66][2];
|
|
|
|
/*0x248*/ u16 unk248[66][2];
|
2019-03-23 15:39:46 +01:00
|
|
|
/*0x350*/ u16 unk350;
|
|
|
|
/*0x352*/ u16 unk352;
|
|
|
|
/*0x354*/ u8 unk354;
|
2020-10-11 00:17:34 +02:00
|
|
|
/*0x355*/ u8 state;
|
2019-03-06 02:32:14 +01:00
|
|
|
};
|
|
|
|
|
2019-03-08 08:10:44 +01:00
|
|
|
bool8 sub_81D1C44(u8 count);
|
2019-03-05 12:06:20 +01:00
|
|
|
u8 sub_81D1C84(u8 a0);
|
2019-03-08 08:10:44 +01:00
|
|
|
u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page);
|
|
|
|
void sub_81D1E90(struct PlayerPCItemPageStruct *page);
|
2019-03-05 12:06:20 +01:00
|
|
|
void sub_81D1EC0(void);
|
|
|
|
void sub_81D1D04(u8 a0);
|
2020-10-11 00:17:34 +02:00
|
|
|
void InitConditionGraphData(struct ConditionGraph *graph);
|
2020-08-12 17:44:39 +02:00
|
|
|
void sub_81D2108(struct ConditionGraph *graph);
|
2020-10-11 00:17:34 +02:00
|
|
|
void SetConditionGraphIOWindows(u8 bg);
|
|
|
|
void InitConditionGraphState(struct ConditionGraph *graph);
|
2020-08-12 17:44:39 +02:00
|
|
|
void sub_81D2230(struct ConditionGraph *graph);
|
2020-10-11 00:17:34 +02:00
|
|
|
bool8 SetupConditionGraphScanlineParams(struct ConditionGraph *graph);
|
2020-08-12 17:44:39 +02:00
|
|
|
bool32 TransitionConditionGraph(struct ConditionGraph *graph);
|
2019-03-22 17:27:18 +01:00
|
|
|
void sub_81D2754(u8 *arg0, struct UnknownSubStruct_81D1ED4 *arg1);
|
2020-08-12 17:44:39 +02:00
|
|
|
void sub_81D1F84(struct ConditionGraph *graph, struct UnknownSubStruct_81D1ED4 *arg1, struct UnknownSubStruct_81D1ED4 *arg2);
|
2019-03-08 08:10:44 +01:00
|
|
|
void MoveRelearnerPrintText(u8 *str);
|
2019-03-08 07:56:38 +01:00
|
|
|
bool16 MoveRelearnerRunTextPrinters(void);
|
|
|
|
void MoveRelearnerCreateYesNoMenu(void);
|
|
|
|
u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices);
|
|
|
|
void InitMoveRelearnerWindows(bool8 useContextWindow);
|
2019-03-31 12:59:01 +02:00
|
|
|
s32 GetBoxOrPartyMonData(u16 boxId, u16 monId, s32 request, u8 *dst);
|
2020-08-10 23:05:42 +02:00
|
|
|
void GetConditionMenuMonNameAndLocString(u8 *locationDst, u8 *nameDst, u16 boxId, u16 monId, u16 partyId, u16 numMons, bool8 excludesCancel);
|
2020-08-12 17:44:39 +02:00
|
|
|
void GetConditionMenuMonConditions(struct ConditionGraph *graph, u8 *sheen, u16 boxId, u16 monId, u16 partyId, u16 id, u16 numMons, bool8 excludesCancel);
|
2020-08-10 23:05:42 +02:00
|
|
|
void GetConditionMenuMonGfx(void *tilesDst, void *palDst, u16 boxId, u16 monId, u16 partyId, u16 numMons, bool8 excludesCancel);
|
2020-08-12 17:44:39 +02:00
|
|
|
bool8 MoveConditionMonOnscreen(s16 *x);
|
|
|
|
bool8 MoveConditionMonOffscreen(s16 *x);
|
|
|
|
bool8 TryUpdateConditionMonTransitionOn(struct ConditionGraph *graph, s16 *x);
|
|
|
|
bool8 TryUpdateConditionMonTransitionOff(struct ConditionGraph *graph, s16 *x);
|
2020-08-10 23:05:42 +02:00
|
|
|
void LoadConditionMonPicTemplate(struct SpriteSheet *sheet, struct SpriteTemplate *template, struct SpritePalette *pal);
|
2020-08-10 19:48:16 +02:00
|
|
|
void LoadConditionSelectionIcons(struct SpriteSheet *sheets, struct SpriteTemplate * template, struct SpritePalette *pals);
|
|
|
|
void LoadConditionSparkle(struct SpriteSheet *sheet, struct SpritePalette *pal);
|
|
|
|
void ResetConditionSparkleSprites(struct Sprite **sprites);
|
2020-08-10 23:05:42 +02:00
|
|
|
void CreateConditionSparkleSprites(struct Sprite **sprites, u8 monSpriteId, u8 count);
|
2020-08-10 19:48:16 +02:00
|
|
|
void DestroyConditionSparkleSprites(struct Sprite **sprites);
|
|
|
|
void FreeConditionSparkles(struct Sprite **sprites);
|
2019-04-04 21:24:21 +02:00
|
|
|
void DrawLevelUpWindowPg1(u16 windowId, u16 *statsBefore, u16 *statsAfter, u8 bgClr, u8 fgClr, u8 shadowClr);
|
|
|
|
void DrawLevelUpWindowPg2(u16 windowId, u16 *currStats, u8 bgClr, u8 fgClr, u8 shadowClr);
|
|
|
|
void GetMonLevelUpWindowStats(struct Pokemon *mon, u16 *currStats);
|
2019-03-05 12:06:20 +01:00
|
|
|
|
2019-03-22 17:27:18 +01:00
|
|
|
#endif // GUARD_MENU_SPECIALIZED_H
|