diff options
Diffstat (limited to 'include/mystery_gift.h')
-rwxr-xr-x[-rw-r--r--] | include/mystery_gift.h | 63 |
1 files changed, 51 insertions, 12 deletions
diff --git a/include/mystery_gift.h b/include/mystery_gift.h index 73d3b93ea..3b27b3f2d 100644..100755 --- a/include/mystery_gift.h +++ b/include/mystery_gift.h @@ -1,18 +1,57 @@ #ifndef GUARD_MYSTERY_GIFT_H #define GUARD_MYSTERY_GIFT_H -extern bool8 gGiftIsFromEReader; +#include "main.h" +#include "constants/mystery_gift.h" -u16 GetMysteryGiftBaseBlock(void); -void CB2_MysteryGiftEReader(void); -void PrintMysteryGiftOrEReaderTopMenu(bool8 isJapanese, bool32 usePickOkCancel); -void MG_DrawCheckerboardPattern(u32 bg); -void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void); -bool32 PrintMysteryGiftMenuMessage(u8 *textState, const u8 *str); -void AddTextPrinterToWindow1(const u8 *src); -void CB2_InitEReader(void); -void CB2_InitMysteryGift(void); -void MG_DrawTextBorder(u8 windowId); -s8 DoMysteryGiftYesNo(u8 *textState, u16 *windowId, bool8 yesNoBoxPlacement, const u8 *str); +struct MysteryGiftLinkGameData +{ + // It's possible these first 5 fields had some other meaningful purpose, + // but they are only ever set when creating this data and read to validate it. + u32 validationVar; + u16 validationFlag1; + u32 validationFlag2; + u16 validationGiftType1; + u32 validationGiftType2; + u16 flagId; + u16 questionnaireWords[NUM_QUESTIONNAIRE_WORDS]; + struct WonderCardMetadata cardMetadata; + u8 maxStamps; + u8 playerName[PLAYER_NAME_LENGTH]; + u8 playerTrainerId[TRAINER_ID_LENGTH]; + u16 easyChatProfile[EASY_CHAT_BATTLE_WORDS_COUNT]; + u8 romHeaderGameCode[GAME_CODE_LENGTH]; + u8 romHeaderSoftwareVersion; +}; + +void ClearMysteryGift(void); +struct WonderNews *GetSavedWonderNews(void); +struct WonderCard *GetSavedWonderCard(void); +struct WonderCardMetadata *GetSavedWonderCardMetadata(void); +struct WonderNewsMetadata *GetSavedWonderNewsMetadata(void); +u16 *GetQuestionnaireWordsPtr(void); +void ClearSavedWonderNewsAndRelated(void); +void ClearSavedWonderCardAndRelated(void); +bool32 SaveWonderNews(const struct WonderNews *news); +bool32 SaveWonderCard(const struct WonderCard *card); +bool32 ValidateSavedWonderNews(void); +bool32 ValidateSavedWonderCard(void); +bool32 IsWonderNewsSameAsSaved(const u8 *news); +bool32 IsSendingSavedWonderNewsAllowed(void); +bool32 IsSendingSavedWonderCardAllowed(void); +u16 GetWonderCardFlagID(void); +void DisableWonderCardSending(struct WonderCard *card); +bool32 IsSavedWonderCardGiftNotReceived(void); +bool32 MysteryGift_TrySaveStamp(const u16 *stamp); +void MysteryGift_LoadLinkGameData(struct MysteryGiftLinkGameData *data, bool32 isWonderNews); +bool32 MysteryGift_ValidateLinkGameData(const struct MysteryGiftLinkGameData *data, bool32 isWonderNews); +u32 MysteryGift_CompareCardFlags(const u16 *flagId, const struct MysteryGiftLinkGameData *data, const void *unused); +u32 MysteryGift_CheckStamps(const u16 *stamp, const struct MysteryGiftLinkGameData *data, const void *unused); +bool32 MysteryGift_DoesQuestionnaireMatch(const struct MysteryGiftLinkGameData *data, const u16 *words); +u16 MysteryGift_GetCardStatFromLinkData(const struct MysteryGiftLinkGameData *data, u32 stat); +u16 MysteryGift_GetCardStat(u32 stat); +void MysteryGift_DisableStats(void); +bool32 MysteryGift_TryEnableStatsByFlagId(u16 flagId); +void MysteryGift_TryIncrementStat(u32 stat, u32 trainerId); #endif //GUARD_MYSTERY_GIFT_H |