#ifndef GUARD_MYSTERY_GIFT_CLIENT_H #define GUARD_MYSTERY_GIFT_CLIENT_H #include "mystery_gift_link.h" // Return values for client functions called by MysteryGiftClient_Run enum { CLI_RET_INIT, CLI_RET_ACTIVE, CLI_RET_YES_NO, CLI_RET_PRINT_MSG, CLI_RET_ASK_TOSS, CLI_RET_COPY_MSG, CLI_RET_END, }; // IDs for client script instructions enum { CLI_NONE, CLI_RETURN, CLI_RECV, CLI_SEND_LOADED, CLI_COPY_RECV, CLI_YES_NO, CLI_COPY_RECV_IF_N, CLI_COPY_RECV_IF, CLI_LOAD_GAME_DATA, CLI_SAVE_NEWS, CLI_SAVE_CARD, CLI_PRINT_MSG, CLI_COPY_MSG, CLI_ASK_TOSS, CLI_LOAD_TOSS_RESPONSE, CLI_RUN_MEVENT_SCRIPT, CLI_SAVE_STAMP, CLI_SAVE_RAM_SCRIPT, CLI_RECV_EREADER_TRAINER, CLI_SEND_STAT, 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; u32 parameter; }; struct MysteryGiftClient { u32 unused; u32 param; u32 funcId; u32 funcState; u32 cmdidx; void * sendBuffer; void * recvBuffer; struct MysteryGiftClientCmd * script; void * msg; struct MysteryGiftLink link; bool32 isWonderNews; }; void MysteryGiftClient_Create(bool32 isWonderNews); u32 MysteryGiftClient_Run(u16 * endVal); void MysteryGiftClient_AdvanceState(void); void * MysteryGiftClient_GetMsg(void); void MysteryGiftClient_SetParam(u32 value); #endif //GUARD_MYSTERY_GIFT_CLIENT_H