Initial mystery gift sync
This commit is contained in:
+22
-20
@@ -701,26 +701,28 @@
|
||||
#define FLAG_0x2A4 0x2A4
|
||||
#define FLAG_CAN_USE_ROCKET_HIDEOUT_LIFT 0x2A5
|
||||
#define FLAG_GOT_TEA 0x2A6
|
||||
#define FLAG_GOT_AURORA_TICKET 0x2A7
|
||||
#define FLAG_GOT_MYSTIC_TICKET 0x2A8
|
||||
#define FLAG_0x2A9 0x2A9
|
||||
#define FLAG_0x2AA 0x2AA
|
||||
#define FLAG_0x2AB 0x2AB
|
||||
#define FLAG_0x2AC 0x2AC
|
||||
#define FLAG_0x2AD 0x2AD
|
||||
#define FLAG_0x2AE 0x2AE
|
||||
#define FLAG_0x2AF 0x2AF
|
||||
#define FLAG_0x2B0 0x2B0
|
||||
#define FLAG_0x2B1 0x2B1
|
||||
#define FLAG_0x2B2 0x2B2
|
||||
#define FLAG_0x2B3 0x2B3
|
||||
#define FLAG_0x2B4 0x2B4
|
||||
#define FLAG_0x2B5 0x2B5
|
||||
#define FLAG_0x2B6 0x2B6
|
||||
#define FLAG_0x2B7 0x2B7
|
||||
#define FLAG_0x2B8 0x2B8
|
||||
#define FLAG_0x2B9 0x2B9
|
||||
#define FLAG_0x2BA 0x2BA
|
||||
#define FLAG_RECEIVED_AURORA_TICKET 0x2A7
|
||||
#define FLAG_RECEIVED_MYSTIC_TICKET 0x2A8
|
||||
#define FLAG_RECEIVED_OLD_SEA_MAP 0x2A9
|
||||
#define FLAG_WONDER_CARD_UNUSED_1 0x2AA
|
||||
#define FLAG_WONDER_CARD_UNUSED_2 0x2AB
|
||||
#define FLAG_WONDER_CARD_UNUSED_3 0x2AC
|
||||
#define FLAG_WONDER_CARD_UNUSED_4 0x2AD
|
||||
#define FLAG_WONDER_CARD_UNUSED_5 0x2AE
|
||||
#define FLAG_WONDER_CARD_UNUSED_6 0x2AF
|
||||
#define FLAG_WONDER_CARD_UNUSED_7 0x2B0
|
||||
#define FLAG_WONDER_CARD_UNUSED_8 0x2B1
|
||||
#define FLAG_WONDER_CARD_UNUSED_9 0x2B2
|
||||
#define FLAG_WONDER_CARD_UNUSED_10 0x2B3
|
||||
#define FLAG_WONDER_CARD_UNUSED_11 0x2B4
|
||||
#define FLAG_WONDER_CARD_UNUSED_12 0x2B5
|
||||
#define FLAG_WONDER_CARD_UNUSED_13 0x2B6
|
||||
#define FLAG_WONDER_CARD_UNUSED_14 0x2B7
|
||||
#define FLAG_WONDER_CARD_UNUSED_15 0x2B8
|
||||
#define FLAG_WONDER_CARD_UNUSED_16 0x2B9
|
||||
#define FLAG_WONDER_CARD_UNUSED_17 0x2BA
|
||||
#define NUM_WONDER_CARD_FLAGS (1 + FLAG_WONDER_CARD_UNUSED_17 - FLAG_RECEIVED_AURORA_TICKET)
|
||||
|
||||
#define FLAG_GOT_POWDER_JAR 0x2BB
|
||||
#define FLAG_FOUGHT_MEWTWO 0x2BC
|
||||
#define FLAG_FOUGHT_MOLTRES 0x2BD
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
// Bits 12-15 are the same for the player's party.
|
||||
// Used by Quest Log.
|
||||
#define VAR_QUEST_LOG_MON_COUNTS 0x4027
|
||||
#define VAR_MENEWS_JISAN_STEP_COUNTER 0x4028
|
||||
#define VAR_WONDER_NEWS_STEP_COUNTER 0x4028
|
||||
#define VAR_0x4029 0x4029
|
||||
#define VAR_0x402A 0x402A
|
||||
#define VAR_0x402B 0x402B
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ struct EasyChatWordsByLetter
|
||||
u8 *CopyEasyChatWord(u8 *dest, u16 word);
|
||||
u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows);
|
||||
bool8 EC_DoesEasyChatStringFitOnLine(const u16 *easyChatWords, u8 columns, u8 rows, u16 maxLength);
|
||||
void EC_ResetMEventProfileMaybe(void);
|
||||
void InitQuestionnaireWords(void);
|
||||
void InitEasyChatPhrases(void);
|
||||
void EnableRareWord(u8);
|
||||
bool8 InitEasyChatSelection(void);
|
||||
|
||||
@@ -49,8 +49,8 @@ bool8 FlagGet(u16 id);
|
||||
u16 * GetVarPointer(u16 id);
|
||||
bool32 IsMysteryGiftEnabled(void);
|
||||
void ResetSpecialVars(void);
|
||||
void ResetMysteryEventFlags(void);
|
||||
void ResetMysteryEventVars(void);
|
||||
void ClearMysteryGiftFlags(void);
|
||||
void ClearMysteryGiftVars(void);
|
||||
bool32 IsNationalPokedexEnabled(void);
|
||||
void EnableNationalPokedex_RSE(void);
|
||||
void ClearTempFieldEventData(void);
|
||||
|
||||
+2
-2
@@ -627,7 +627,7 @@ struct FameCheckerSaveData
|
||||
|
||||
struct WonderNewsMetadata
|
||||
{
|
||||
u8 unk_0_0:2;
|
||||
u8 newsType:2;
|
||||
u8 unk_0_2:3;
|
||||
u8 unk_0_5:3;
|
||||
u8 berry;
|
||||
@@ -635,7 +635,7 @@ struct WonderNewsMetadata
|
||||
|
||||
struct WonderNews
|
||||
{
|
||||
u16 newsId;
|
||||
u16 id;
|
||||
u8 sendType; // SEND_TYPE_*
|
||||
u8 bgType;
|
||||
u8 titleText[WONDER_NEWS_TEXT_LENGTH];
|
||||
|
||||
+2
-1
@@ -69,7 +69,8 @@ void StartTimer1(void);
|
||||
void SeedRngAndSetTrainerId(void);
|
||||
u16 GetGeneratedTrainerIdLower(void);
|
||||
|
||||
extern const char RomHeaderGameCode[4];
|
||||
#define GAME_CODE_LENGTH 4
|
||||
extern const char RomHeaderGameCode[GAME_CODE_LENGTH];
|
||||
extern const char RomHeaderSoftwareVersion;
|
||||
|
||||
extern u8 gLinkTransferringData;
|
||||
|
||||
+35
-33
@@ -2,6 +2,8 @@
|
||||
#define GUARD_MYSTERY_GIFT_H
|
||||
|
||||
#include "global.h"
|
||||
#include "main.h"
|
||||
#include "constants/mystery_gift.h"
|
||||
|
||||
#define CARD_STAT_BATTLES_WON 0
|
||||
#define CARD_STAT_BATTLES_LOST 1
|
||||
@@ -17,21 +19,21 @@ enum {
|
||||
NEWS_INPUT_NONE = 0xFF
|
||||
};
|
||||
|
||||
struct MEventClientHeaderStruct
|
||||
struct MysteryGiftLinkGameData
|
||||
{
|
||||
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];
|
||||
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 gameCode[GAME_CODE_LENGTH];
|
||||
u8 version;
|
||||
};
|
||||
|
||||
@@ -66,41 +68,41 @@ 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);
|
||||
struct WonderCardMetadata * GetSavedWonderCardMetadata(void);
|
||||
struct WonderNewsMetadata * GetSavedWonderNewsMetadata(void);
|
||||
bool32 SaveWonderNews(const struct WonderNews * news);
|
||||
bool32 ValidateSavedWonderNews(void);
|
||||
bool32 ValidateSavedWonderCard(void);
|
||||
bool32 IsWonderNewsSameAsSaved(const u8 * news);
|
||||
bool32 SaveWonderCard(const struct WonderCard * card);
|
||||
void DisableWonderCardSending(struct WonderCard * card);
|
||||
bool32 MysteryGift_TrySaveStamp(const u16 * stamp);
|
||||
void MysteryGift_LoadLinkGameData(struct MysteryGiftLinkGameData * data);
|
||||
bool32 MysteryGift_ValidateLinkGameData(const struct MysteryGiftLinkGameData * data);
|
||||
u32 MysteryGift_CompareCardFlags(const u16 * flagId, const struct MysteryGiftLinkGameData * data, void *unused);
|
||||
u32 MysteryGift_CheckStamps(const u16 * stamp, const struct MysteryGiftLinkGameData * data, void *unused);
|
||||
bool32 MysteryGift_DoesQuestionnaireMatch(const struct MysteryGiftLinkGameData * data, const u16 * words);
|
||||
u16 MysteryGift_GetCardStatFromLinkData(const struct MysteryGiftLinkGameData * data, u32 stat);
|
||||
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 ClearSavedWonderCardAndRelated(void);
|
||||
void ClearSavedWonderNewsAndRelated(void);
|
||||
void WonderCard_Destroy(void);
|
||||
void WonderNews_Destroy(void);
|
||||
s32 WonderCard_Exit(bool32 flag);
|
||||
s32 WonderNews_Exit(bool32 flag);
|
||||
bool32 CheckReceivedGiftFromWonderCard(void);
|
||||
bool32 IsSavedWonderCardGiftNotReceived(void);
|
||||
void WonderNews_AddScrollIndicatorArrowPair(void);
|
||||
void WonderNews_RemoveScrollIndicatorArrowPair(void);
|
||||
bool32 WonderNews_Test_Unk_02(void);
|
||||
bool32 WonderCard_Test_Unk_08_6(void);
|
||||
bool32 IsSendingSavedWonderNewsAllowed(void);
|
||||
bool32 IsSendingSavedWonderCardAllowed(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 ClearMysteryGift(void);
|
||||
u16 MysteryGift_GetCardStat(u32 stat);
|
||||
void MysteryGift_TryIncrementStat(u32 stat, u32 trainerId);
|
||||
u16 *GetQuestionnaireWordsPtr(void);
|
||||
void MysteryGift_DisableStats(void);
|
||||
bool32 MysteryGift_TryEnableStatsByFlagId(u16 flagId);
|
||||
u16 GetWonderCardFlagId(void);
|
||||
|
||||
@@ -102,7 +102,7 @@ struct mevent_srv_common
|
||||
void *recvBuffer;
|
||||
struct WonderCard * card;
|
||||
struct WonderNews * news;
|
||||
struct MEventClientHeaderStruct * mevent_unk1442cc;
|
||||
struct MysteryGiftLinkGameData * mevent_unk1442cc;
|
||||
void *sendBuffer1;
|
||||
u32 sendBuffer1Size;
|
||||
void *sendBuffer2;
|
||||
|
||||
+10
-3
@@ -3,8 +3,15 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void MENewsJisan_SetRandomReward(u32 a0);
|
||||
void MENewsJisanReset(void);
|
||||
void MENewsJisanStepCounter(void);
|
||||
enum {
|
||||
WONDER_NEWS_NONE,
|
||||
WONDER_NEWS_RECV_FRIEND,
|
||||
WONDER_NEWS_RECV_WIRELESS,
|
||||
WONDER_NEWS_SENT,
|
||||
};
|
||||
|
||||
void WonderNews_SetReward(u32 newsType);
|
||||
void WonderNews_Reset(void);
|
||||
void WonderNews_IncrementStepCounter(void);
|
||||
|
||||
#endif //GUARD_WONDER_NEWS_H
|
||||
|
||||
Reference in New Issue
Block a user