General mystery gift documentation, finish mystery gift client/server/scripts

This commit is contained in:
GriffinR
2021-10-15 12:56:14 -04:00
parent e3bb257bcf
commit 845a5e99cc
34 changed files with 1479 additions and 1279 deletions

View File

@@ -6,11 +6,11 @@
// Return values for client functions called by MysteryGiftClient_Run
enum {
CLI_RET_INIT,
CLI_RET_1,
CLI_RET_2,
CLI_RET_3,
CLI_RET_ACTIVE,
CLI_RET_YES_NO,
CLI_RET_PRINT_MSG,
CLI_RET_ASK_TOSS,
CLI_RET_5,
CLI_RET_COPY_MSG,
CLI_RET_END,
};
@@ -21,25 +21,47 @@ enum {
CLI_RECV,
CLI_SEND_LOADED,
CLI_COPY_RECV,
CLI_5,
CLI_YES_NO,
CLI_COPY_RECV_IF_N,
CLI_COPY_RECV_IF,
CLI_8,
CLI_9,
CLI_10,
CLI_11,
CLI_12,
CLI_LOAD_GAME_DATA,
CLI_SAVE_NEWS,
CLI_SAVE_CARD,
CLI_PRINT_MSG,
CLI_COPY_MSG,
CLI_ASK_TOSS,
CLI_LOAD_TOSS_RESPONSE,
CLI_15,
CLI_16,
CLI_17,
CLI_RUN_GIFT_SCRIPT,
CLI_SAVE_STAMP,
CLI_SAVE_RAM_SCRIPT,
CLI_RECV_EREADER_TRAINER,
CLI_SEND_STAT,
CLI_20,
CLI_21,
CLI_SEND_READY_END,
CLI_RUN_BUFFER_SCRIPT,
};
// IDs for client messages when ending a script.
// Given as the parameter to CLI_RETURN, and resolved to text in GetClientResultMessage
enum {
CLI_MSG_NOTHING_SENT,
CLI_MSG_RECORD_UPLOADED,
CLI_MSG_CARD_RECEIVED,
CLI_MSG_NEWS_RECEIVED,
CLI_MSG_STAMP_RECEIVED,
CLI_MSG_HAD_CARD,
CLI_MSG_HAD_STAMP,
CLI_MSG_HAD_NEWS,
CLI_MSG_NO_ROOM_STAMPS,
CLI_MSG_COMM_CANCELED,
CLI_MSG_CANT_ACCEPT,
CLI_MSG_COMM_ERROR,
CLI_MSG_TRAINER_RECEIVED,
CLI_MSG_BUFFER_SUCCESS,
CLI_MSG_BUFFER_FAILURE,
};
#define CLIENT_MAX_MSG_SIZE 64
struct MysteryGiftClientCmd
{
u32 instr;
@@ -48,23 +70,23 @@ struct MysteryGiftClientCmd
struct MysteryGiftClient
{
u32 unk_00;
u32 unused;
u32 param;
u32 funcId;
u32 funcState;
u32 cmdidx;
void * sendBuffer;
void * recvBuffer;
struct MysteryGiftClientCmd * cmdBuffer;
void * buffer;
struct MysteryGiftClientCmd * script;
void * msg;
struct MysteryGiftLink link;
bool32 isWonderNews;
};
void MysteryGiftClient_Create(bool32 isWonderNews);
u32 MysteryGiftClient_Run(u16 * param);
u32 MysteryGiftClient_Run(u16 * endVal);
void MysteryGiftClient_AdvanceState(void);
void * mevent_client_get_buffer(void);
void * MysteryGiftClient_GetMsg(void);
void MysteryGiftClient_SetParam(u32 value);
#endif //GUARD_MEVENT_CLIENT_H