#ifndef GUARD_MEVENT_H #define GUARD_MEVENT_H #include "global.h" #define CARD_STAT_BATTLES_WON 0 #define CARD_STAT_BATTLES_LOST 1 #define CARD_STAT_NUM_TRADES 2 #define CARD_STAT_NUM_STAMPS 3 #define CARD_STAT_MAX_STAMPS 4 enum { NEWS_INPUT_A, NEWS_INPUT_B, NEWS_INPUT_SCROLL_UP, NEWS_INPUT_SCROLL_DOWN, NEWS_INPUT_NONE = 0xFF }; struct MEventClientHeaderStruct { u32 unk_00; u16 unk_04; u32 unk_08; u16 unk_0C; u32 unk_10; u16 id; u16 unk_16[4]; struct WonderCardMetadata unk_20; u8 maxDistributionMons; u8 playerName[7]; u8 playerTrainerId[4]; u16 easyChatProfile[6]; u8 gameCode[4]; u8 version; }; struct MEvent_Str_1 { u16 status; size_t size; const void *data; }; struct MEvent_Str_2 { u8 fill_00[0x40]; }; struct WonderGraphics { u8 titleTextPal:4; u8 bodyTextPal:4; u8 footerTextPal:4; u8 stampShadowPal:4; const u8 * tiles; const u8 * map; const u16 * pal; }; extern const u16 gCard1Pal[]; extern const u16 gCard2Pal[]; extern const u16 gCard3Pal[]; extern const u16 gCard4Pal[]; extern const u16 gCard5Pal[]; struct WonderNews * GetSavedWonderNews(void); struct WonderCard * GetSavedWonderCard(void); struct WonderCardMetadata * sav1_get_mevent_buffer_2(void); struct WonderNewsMetadata * GetMENewsJisanStructPtr(void); bool32 OverwriteSavedWonderNewsWithReceivedNews(const struct WonderNews * src); bool32 ValidateReceivedWonderNews(void); bool32 ValidateReceivedWonderCard(void); bool32 MEvent_HaveAlreadyReceivedWonderNews(const u8 * src); bool32 OverwriteSavedWonderCardWithReceivedCard(const struct WonderCard * data); void MEvent_WonderCardResetUnk08_6(struct WonderCard * buffer); bool32 MEvent_ReceiveDistributionMon(const u16 * data); void BuildMEventClientHeader(struct MEventClientHeaderStruct * data); bool32 ValidateMEventClientHeader(const struct MEventClientHeaderStruct * data); u32 sub_8144418(const u16 * a0, const struct MEventClientHeaderStruct * a1, void *unused); u32 MEvent_CanPlayerReceiveDistributionMon(const u16 * a0, const struct MEventClientHeaderStruct * a1, void *unused); bool32 sub_8144474(const struct MEventClientHeaderStruct * a0, const u16 * a1); u16 sub_81444B0(const struct MEventClientHeaderStruct * a0, u32 command); bool32 WonderCard_Init(struct WonderCard * card, struct WonderCardMetadata * metadata); bool32 WonderNews_Init(const struct WonderNews * news); s32 WonderCard_Enter(void); s32 WonderNews_Enter(void); void DestroyWonderCard(void); void DestroyWonderNews(void); void WonderCard_Destroy(void); void WonderNews_Destroy(void); s32 WonderCard_Exit(bool32 flag); s32 WonderNews_Exit(bool32 flag); bool32 CheckReceivedGiftFromWonderCard(void); void WonderNews_AddScrollIndicatorArrowPair(void); void WonderNews_RemoveScrollIndicatorArrowPair(void); bool32 WonderNews_Test_Unk_02(void); bool32 WonderCard_Test_Unk_08_6(void); u32 WonderNews_GetInput(u16 input); void InitMEventData(void); u16 MEvent_GetBattleCardCount(u32 command); void MysteryGift_TryIncrementStat(u32 eventId, u32 trainerId); u16 *GetMEventProfileECWordsMaybe(void); void MysteryGift_DisableStats(void); bool32 MysteryGift_TryEnableStatsByFlagId(u16 flagId); u16 GetWonderCardFlagId(void); #endif //GUARD_MEVENT_H