Document mystery gift link scripts, general mystery gift
This commit is contained in:
@@ -338,23 +338,24 @@
|
||||
#define FLAG_RECEIVED_AURORA_TICKET 0x13A
|
||||
#define FLAG_RECEIVED_MYSTIC_TICKET 0x13B
|
||||
#define FLAG_RECEIVED_OLD_SEA_MAP 0x13C
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x13D 0x13D
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x13E 0x13E
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x13F 0x13F
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x140 0x140
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x141 0x141
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x142 0x142
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x143 0x143
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x144 0x144
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x145 0x145
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x146 0x146
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x147 0x147
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x148 0x148
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x149 0x149
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x14A 0x14A
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x14B 0x14B
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x14C 0x14C
|
||||
#define FLAG_UNUSED_MYSTERY_GIFT_0x14D 0x14D
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_1 0x13D // These mystery gift flags are referenced but never set
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_2 0x13E
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_3 0x13F
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_4 0x140
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_5 0x141
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_6 0x142
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_7 0x143
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_8 0x144
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_9 0x145
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_10 0x146
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_11 0x147
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_12 0x148
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_13 0x149
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_14 0x14A
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_15 0x14B
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_16 0x14C
|
||||
#define FLAG_MYSTERY_GIFT_UNUSED_17 0x14D
|
||||
#define NUM_MYSTERY_GIFT_FLAGS (1 + FLAG_MYSTERY_GIFT_UNUSED_17 - FLAG_RECEIVED_AURORA_TICKET)
|
||||
|
||||
#define FLAG_MIRAGE_TOWER_VISIBLE 0x14E
|
||||
#define FLAG_CHOSE_ROOT_FOSSIL 0x14F
|
||||
|
||||
@@ -854,15 +854,9 @@ struct MysteryEventStruct
|
||||
u8 unk_2C[10][WONDER_NEWS_TEXT_LENGTH];
|
||||
};
|
||||
|
||||
struct WonderNewsSaveStruct
|
||||
{
|
||||
u32 crc;
|
||||
struct WonderNews data;
|
||||
};
|
||||
|
||||
struct WonderCard
|
||||
{
|
||||
u16 unk_00;
|
||||
u16 flagId;
|
||||
u16 unk_02;
|
||||
u32 unk_04;
|
||||
u8 unk_08_0:2;
|
||||
@@ -876,13 +870,7 @@ struct MysteryEventStruct
|
||||
u8 unk_122[WONDER_CARD_TEXT_LENGTH];
|
||||
};
|
||||
|
||||
struct WonderCardSaveStruct
|
||||
{
|
||||
u32 crc;
|
||||
struct WonderCard data;
|
||||
};
|
||||
|
||||
struct MEventBuffer_3430_Sub
|
||||
struct MEventBuffer_3430
|
||||
{
|
||||
u16 unk_00;
|
||||
u16 unk_02;
|
||||
@@ -891,20 +879,17 @@ struct MysteryEventStruct
|
||||
u16 unk_08[2][7];
|
||||
};
|
||||
|
||||
struct MEventBuffer_3430
|
||||
struct MysteryGiftSave
|
||||
{
|
||||
u32 crc;
|
||||
struct MEventBuffer_3430_Sub data;
|
||||
};
|
||||
|
||||
struct MEventBuffers
|
||||
{
|
||||
/*0x000 0x322C*/ struct WonderNewsSaveStruct wonderNews;
|
||||
/*0x1c0 0x33EC*/ struct WonderCardSaveStruct wonderCard;
|
||||
/*0x310 0x353C*/ struct MEventBuffer_3430 buffer_310;
|
||||
/*0x338 0x3564*/ u16 questionnaireWords[NUM_QUESTIONNAIRE_WORDS];
|
||||
/*0x340 0x356C*/ struct MysteryEventStruct unk_340;
|
||||
/*0x344 0x3570*/ u32 unk_344[2][5];
|
||||
u32 newsCrc;
|
||||
struct WonderNews news;
|
||||
u32 cardCrc;
|
||||
struct WonderCard card;
|
||||
u32 unkCrc;
|
||||
struct MEventBuffer_3430 unk_3430;
|
||||
u16 questionnaireWords[NUM_QUESTIONNAIRE_WORDS];
|
||||
struct MysteryEventStruct unk_340;
|
||||
u32 unk_344[2][5];
|
||||
}; // 0x36C 0x3598
|
||||
|
||||
// For external event data storage. The majority of these may have never been used.
|
||||
@@ -1031,7 +1016,7 @@ struct SaveBlock1
|
||||
/*0x31C7*/ struct ExternalEventFlags externalEventFlags;
|
||||
/*0x31DC*/ struct Roamer roamer;
|
||||
/*0x31F8*/ struct EnigmaBerry enigmaBerry;
|
||||
/*0x322C*/ struct MEventBuffers unk_322C;
|
||||
/*0x322C*/ struct MysteryGiftSave mysteryGift;
|
||||
/*0x3598*/ u8 field_3598[0x180];
|
||||
/*0x3718*/ u32 trainerHillTimes[4];
|
||||
/*0x3728*/ struct RamScript ramScript;
|
||||
|
||||
@@ -21,30 +21,30 @@ struct MEventStruct_Unk1442CC
|
||||
u16 unk_0C;
|
||||
u32 unk_10;
|
||||
u16 unk_14;
|
||||
u16 unk_16[NUM_QUESTIONNAIRE_WORDS];
|
||||
struct MEventBuffer_3430_Sub unk_20;
|
||||
u16 questionnaireWords[NUM_QUESTIONNAIRE_WORDS];
|
||||
struct MEventBuffer_3430 unk_20;
|
||||
u8 unk_44;
|
||||
u8 unk_45[7];
|
||||
u8 unk_4C[4];
|
||||
u16 unk_50[6];
|
||||
u8 unk_5C[4];
|
||||
u8 unk_60;
|
||||
u8 playerName[PLAYER_NAME_LENGTH];
|
||||
u8 playerTrainerId[TRAINER_ID_LENGTH];
|
||||
u16 easyChatProfile[EASY_CHAT_BATTLE_WORDS_COUNT];
|
||||
u8 romHeaderGameCode[4];
|
||||
u8 romHeaderSoftwareVersion;
|
||||
};
|
||||
|
||||
void sub_801AFD8(void);
|
||||
struct WonderNews *GetSavedWonderNews(void);
|
||||
struct WonderCard *GetSavedWonderCard(void);
|
||||
struct MEventBuffer_3430_Sub *sav1_get_mevent_buffer_2(void);
|
||||
struct MEventBuffer_3430 *sav1_get_mevent_buffer_2(void);
|
||||
struct MysteryEventStruct *sub_801B044(void);
|
||||
u16 *GetQuestionnaireWordsPtr(void);
|
||||
void DestroyWonderNews(void);
|
||||
bool32 sub_801B078(const struct WonderNews *src);
|
||||
bool32 ValidateReceivedWonderNews(void);
|
||||
void ClearSavedWonderNews(void);
|
||||
bool32 SaveWonderNews(const struct WonderNews *news);
|
||||
bool32 ValidateSavedWonderNews(void);
|
||||
bool32 WonderNews_Test_Unk_02(void);
|
||||
bool32 sub_801B1A4(const u8 *src);
|
||||
void DestroyWonderCard(void);
|
||||
bool32 sub_801B21C(const struct WonderCard *data);
|
||||
bool32 ValidateReceivedWonderCard(void);
|
||||
void ClearSavedWonderCard(void);
|
||||
bool32 SaveWonderCard(const struct WonderCard *card);
|
||||
bool32 ValidateSavedWonderCard(void);
|
||||
bool32 WonderCard_Test_Unk_08_6(void);
|
||||
u16 GetWonderCardFlagID(void);
|
||||
void WonderCard_ResetInternalReceivedFlag(struct WonderCard *buffer);
|
||||
@@ -54,7 +54,7 @@ void sub_801B580(struct MEventStruct_Unk1442CC *data, bool32 a1);
|
||||
bool32 sub_801B6A0(const struct MEventStruct_Unk1442CC *data, bool32 a1);
|
||||
u32 sub_801B6EC(const u16 *a0, const struct MEventStruct_Unk1442CC *a1, const void *unused);
|
||||
u32 sub_801B708(const u16 *a0, const struct MEventStruct_Unk1442CC *a1, const void *unused);
|
||||
bool32 MEventStruct_Unk1442CC_CompareField_unk_16(const struct MEventStruct_Unk1442CC *a0, const u16 *a1);
|
||||
bool32 MysteryGift_DoesQuestionnaireMatch(const struct MEventStruct_Unk1442CC *data, const u16 *words);
|
||||
u16 MEventStruct_Unk1442CC_GetValueNFrom_unk_20(const struct MEventStruct_Unk1442CC *a0, u32 command);
|
||||
u16 mevent_081445C0(u32 command);
|
||||
void ResetReceivedWonderCardFlag(void);
|
||||
|
||||
@@ -3,31 +3,68 @@
|
||||
|
||||
#include "mevent_server_helpers.h"
|
||||
|
||||
struct mevent_client_cmd
|
||||
// Return values for client functions called by MysteryGiftClient_Run
|
||||
enum {
|
||||
CLI_RET_INIT,
|
||||
CLI_RET_1,
|
||||
CLI_RET_2,
|
||||
CLI_RET_3,
|
||||
CLI_RET_ASK_TOSS,
|
||||
CLI_RET_5,
|
||||
CLI_RET_END,
|
||||
};
|
||||
|
||||
// IDs for client script instructions
|
||||
enum {
|
||||
CLI_NONE,
|
||||
CLI_RETURN,
|
||||
CLI_RECV,
|
||||
CLI_SEND_LOADED,
|
||||
CLI_COPY_RECV,
|
||||
CLI_5,
|
||||
CLI_COPY_RECV_IF_N,
|
||||
CLI_COPY_RECV_IF,
|
||||
CLI_8,
|
||||
CLI_9,
|
||||
CLI_10,
|
||||
CLI_11,
|
||||
CLI_12,
|
||||
CLI_ASK_TOSS,
|
||||
CLI_LOAD_TOSS_RESPONSE,
|
||||
CLI_15,
|
||||
CLI_16,
|
||||
CLI_17,
|
||||
CLI_RECV_EREADER_TRAINER,
|
||||
CLI_SEND_STAT,
|
||||
CLI_20,
|
||||
CLI_21,
|
||||
};
|
||||
|
||||
struct MysteryGiftClientCmd
|
||||
{
|
||||
u32 instr;
|
||||
u32 parameter;
|
||||
};
|
||||
|
||||
struct mevent_client
|
||||
struct MysteryGiftClient
|
||||
{
|
||||
u32 unk_00;
|
||||
u32 param;
|
||||
u32 mainseqno;
|
||||
u32 flag;
|
||||
u32 funcId;
|
||||
u32 funcState;
|
||||
u32 cmdidx;
|
||||
void * sendBuffer;
|
||||
void * recvBuffer;
|
||||
struct mevent_client_cmd * cmdBuffer;
|
||||
struct MysteryGiftClientCmd * cmdBuffer;
|
||||
void * buffer;
|
||||
struct mevent_srv_sub manager;
|
||||
u32 unk_4C;
|
||||
struct MysteryGiftLink link;
|
||||
bool32 isWonderNews;
|
||||
};
|
||||
|
||||
void mevent_client_do_init(u32 arg);
|
||||
u32 mevent_client_do_exec(u16 * a0);
|
||||
void mevent_client_inc_flag(void);
|
||||
void MysteryGiftClient_Create(bool32 isWonderNews);
|
||||
u32 MysteryGiftClient_Run(u16 * param);
|
||||
void MysteryGiftClient_AdvanceState(void);
|
||||
void * mevent_client_get_buffer(void);
|
||||
void mevent_client_set_param(u32 a0);
|
||||
void MysteryGiftClient_SetParam(u32 value);
|
||||
|
||||
#endif //GUARD_MEVENT_CLIENT_H
|
||||
|
||||
@@ -26,7 +26,7 @@ struct mevent_srv_common
|
||||
const void * sendBuffer2;
|
||||
u32 sendBuffer2Size;
|
||||
u32 sendWord;
|
||||
struct mevent_srv_sub manager;
|
||||
struct MysteryGiftLink manager;
|
||||
};
|
||||
|
||||
void mevent_srv_new_wcard();
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#define ME_SEND_BUF_SIZE 0x400
|
||||
|
||||
struct mevent_srv_sub
|
||||
struct MysteryGiftLink
|
||||
{
|
||||
s32 seqno;
|
||||
u8 sendPlayerNo;
|
||||
@@ -18,8 +18,8 @@ struct mevent_srv_sub
|
||||
u16 sendSize;
|
||||
void * recvBfr;
|
||||
const void * sendBfr;
|
||||
u32 (*recvFunc)(struct mevent_srv_sub *);
|
||||
u32 (*sendFunc)(struct mevent_srv_sub *);
|
||||
u32 (*recvFunc)(struct MysteryGiftLink *);
|
||||
u32 (*sendFunc)(struct MysteryGiftLink *);
|
||||
};
|
||||
|
||||
struct send_recv_header
|
||||
@@ -29,10 +29,10 @@ struct send_recv_header
|
||||
u16 size;
|
||||
};
|
||||
|
||||
void mevent_srv_sub_init(struct mevent_srv_sub *, u32, u32);
|
||||
void mevent_srv_sub_init_send(struct mevent_srv_sub * manager, u32 ident, const void * src, u32 size);
|
||||
bool32 mevent_srv_sub_recv(struct mevent_srv_sub * manager);
|
||||
bool32 mevent_srv_sub_send(struct mevent_srv_sub * manager);
|
||||
void mevent_srv_sub_init_recv(struct mevent_srv_sub *, u32, void *);
|
||||
void MysteryGiftLink_Init(struct MysteryGiftLink *, u32, u32);
|
||||
void MysteryGiftLink_InitSend(struct MysteryGiftLink * manager, u32 ident, const void * src, u32 size);
|
||||
bool32 MysteryGiftLink_Recv(struct MysteryGiftLink * manager);
|
||||
bool32 MysteryGiftLink_Send(struct MysteryGiftLink * manager);
|
||||
void MysteryGiftLink_InitRecv(struct MysteryGiftLink *, u32, void *);
|
||||
|
||||
#endif //GUARD_MEVENT_SERVER_HELPERS_H
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#ifndef GUARD_MYSTERY_EVENT_SCRIPT_H
|
||||
#define GUARD_MYSTERY_EVENT_SCRIPT_H
|
||||
|
||||
void sub_8153870(u8 *script);
|
||||
bool32 sub_8153884(u32 *a0);
|
||||
void InitMysteryGiftScriptContext(u8 *script);
|
||||
bool32 RunMysteryGiftScriptContextCommand(u32 *script);
|
||||
u32 RunMysteryEventScript(u8 *script);
|
||||
void SetMysteryEventScriptStatus(u32 val);
|
||||
u16 GetRecordMixingGift(void);
|
||||
|
||||
@@ -9,7 +9,7 @@ enum {
|
||||
NEWS_INPUT_NONE = 0xFF
|
||||
};
|
||||
|
||||
bool32 WonderCard_Init(struct WonderCard * card, struct MEventBuffer_3430_Sub * r6);
|
||||
bool32 WonderCard_Init(struct WonderCard * card, struct MEventBuffer_3430 * r6);
|
||||
bool32 WonderNews_Init(const struct WonderNews * news);
|
||||
s32 WonderCard_Enter(void);
|
||||
s32 WonderNews_Enter(void);
|
||||
|
||||
Reference in New Issue
Block a user