summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-11-11 11:09:24 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2019-11-11 11:09:24 -0500
commite560b55325cb7329bde2c0f757d9698bf0b7a3af (patch)
tree7fa363a0cc46d5fa52f6a0aef4d9031359f75dcf
parent012477cc5a5ed989e819642a79b3eb64002fb5ee (diff)
Port mevent scripts to C
-rw-r--r--data/data_8466FB8.s12
-rw-r--r--data/mevent/script_common.inc165
-rw-r--r--data/mevent/script_ish.inc118
-rw-r--r--include/link_rfu.h3
-rw-r--r--include/mevent_server.h32
-rw-r--r--ld_script.txt2
-rw-r--r--src/mevent_client.c4
-rw-r--r--src/mevent_scripts.c192
8 files changed, 383 insertions, 145 deletions
diff --git a/data/data_8466FB8.s b/data/data_8466FB8.s
deleted file mode 100644
index 9436bc4fd..000000000
--- a/data/data_8466FB8.s
+++ /dev/null
@@ -1,12 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_84687A0::
- .string "You have collected all STAMPs!\n"
- .string "Want to input a CARD as a prize?$"
-
- .include "data/mevent/script_ish.inc"
- .include "data/mevent/script_common.inc"
diff --git a/data/mevent/script_common.inc b/data/mevent/script_common.inc
index f3ca09e3d..e84a79ad3 100644
--- a/data/mevent/script_common.inc
+++ b/data/mevent/script_common.inc
@@ -1,87 +1,98 @@
-gMEventSrvScript_UnableToSend::
- .4byte 0x12, 0x10, gMEventClientScript_UnableToRecv @ SEND
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x02, 0x14, NULL @ RECV
- .4byte 0x00, 0x0a, NULL @ RETURN (can't send)
+const struct mevent_server_cmd gMEventSrvScript_UnableToSend[] = {
+ SRV_SEND(0x10, gMEventClientScript_UnableToRecv),
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x0a)
+};
- .4byte 0x12, 0x10, gMEventClientScript_CommError @ SEND
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x02, 0x14, NULL @ RECV
- .4byte 0x00, 0x0b, NULL @ RETURN (comm error)
+ SRV_SEND(0x10, gMEventClientScript_CommError),
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x0b)
+};
- .4byte 0x12, 0x10, gMEventClientScript_OtherTrainerCanceled @ SEND
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x02, 0x14, NULL @ RECV
- .4byte 0x00, 0x09, NULL @ RETURN (other trn canceled)
+ SRV_SEND(0x10, gMEventClientScript_OtherTrainerCanceled),
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x09)
+};
-gMEventSrvScript_OtherTrnHasNews::
- .4byte 0x12, 0x10, gMEventClientScript_AlreadyHadNews @ SEND
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x02, 0x14, NULL @ RECV
- .4byte 0x00, 0x07, NULL @ RETURN (other trn has news)
+const struct mevent_server_cmd gMEventSrvScript_OtherTrnHasNews[] = {
+ SRV_SEND(0x10, gMEventClientScript_AlreadyHadNews),
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x07)
+};
-gMEventSrvScript_SentNewsSuccess::
- .4byte 0x12, 0x28, gMEventClientScript_ReceiveNewsAndValidate @ SEND
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x0e, 0x00, NULL @ SEND_NEWS
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x02, 0x13, NULL @ RECV
- .4byte 0x08, 0x00, NULL @ READWORD
- .4byte 0x04, 0x01, gMEventSrvScript_OtherTrnHasNews @ BRANCH_EQ
- .4byte 0x12, 0x10, gMEventClientScript_RecvNewsSuccess @ SEND
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x02, 0x14, NULL @ RECV
- .4byte 0x00, 0x03, NULL @ RETURN (news sent to)
+const struct mevent_server_cmd gMEventSrvScript_SentNewsSuccess[] = {
+ SRV_SEND(0x28, gMEventClientScript_ReceiveNewsAndValidate),
+ SRV_WAITSND,
+ SRV_SEND_NEWS,
+ SRV_WAITSND,
+ SRV_RECV(0x13),
+ SRV_READWORD,
+ SRV_BRANCHIF(0x01, gMEventSrvScript_OtherTrnHasNews),
+ SRV_SEND(0x10, gMEventClientScript_RecvNewsSuccess),
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x03)
+};
-gMEventSrvScript_SendCardSuccess::
- .4byte 0x12, 0x30, gMEventClientScript_ReceiveCardAndReturnSuccess @ SEND
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x0d, 0x00, NULL @ SEND_CARD
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x0f, 0x00, NULL @ BUFFER_SEND
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x02, 0x14, NULL @ RECV
- .4byte 0x00, 0x02, NULL @ RETURN (card sent to)
+const struct mevent_server_cmd gMEventSrvScript_SendCardSuccess[] = {
+ SRV_SEND(0x30, gMEventClientScript_ReceiveCardAndReturnSuccess),
+ SRV_WAITSND,
+ SRV_SEND_CARD,
+ SRV_WAITSND,
+ SRV_BUFFER_SEND,
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x02)
+};
-gMEventSrvScript_AskClientToOverwriteCard::
- .4byte 0x12, 0x28, gMEventClientScript_AskWouldLikeToTossCard @ SEND
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x02, 0x13, NULL @ RECV
- .4byte 0x08, 0x00, NULL @ READWORD
- .4byte 0x04, 0x00, gMEventSrvScript_SendCardSuccess @ BRANCH_EQ
- .4byte 0x03, 0x00, gMEventSrvScript_OtherTrainerCanceled @ BRANCH
+const struct mevent_server_cmd gMEventSrvScript_AskClientToOverwriteCard[] = {
+ SRV_SEND(0x28, gMEventClientScript_AskWouldLikeToTossCard),
+ SRV_WAITSND,
+ SRV_RECV(0x13),
+ SRV_READWORD,
+ SRV_BRANCHIF(0x00, gMEventSrvScript_SendCardSuccess),
+ SRV_BRANCH(gMEventSrvScript_OtherTrainerCanceled)
+};
-gMEventSrvScript_OtherTrnHasCard::
- .4byte 0x12, 0x10, gMEventClientScript_AlreadyHadCard @ SEND
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x02, 0x14, NULL @ RECV
- .4byte 0x00, 0x05, NULL @ RETURN (other trn has card)
+const struct mevent_server_cmd gMEventSrvScript_OtherTrnHasCard[] = {
+ SRV_SEND(0x10, gMEventClientScript_AlreadyHadCard),
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x05)
+};
- .4byte 0x12, 0x10, gMEventClientScript_NothingSentOver @ SEND
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x02, 0x14, NULL @ RECV
- .4byte 0x00, 0x00, NULL @ RETURN (nothing sent over)
+ SRV_SEND(0x10, gMEventClientScript_NothingSentOver),
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x00)
+};
-gMEventSrvScript_SendNews:: @ 8468B6C
- .4byte 0x1b, 0x00, NULL @ BUFFER_SAVED_NEWS
- .4byte 0x12, 0x20, gMEventClientScript_Send1442CC @ SEND
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x02, 0x11, NULL @ RECV
- .4byte 0x05, 0x00, NULL @ READ_1442CC
- .4byte 0x06, 0x00, NULL @ VALID_1442CC
- .4byte 0x04, 0x00, gMEventSrvScript_UnableToSend @ BRANCH_EQ
- .4byte 0x03, 0x00, gMEventSrvScript_SentNewsSuccess @ BRANCH
+const struct mevent_server_cmd gMEventSrvScript_SendNews[] = {
+ SRV_BUFFER_NEWS,
+ SRV_SEND(0x20, gMEventClientScript_Send1442CC),
+ SRV_WAITSND,
+ SRV_RECV(0x11),
+ SRV_READ_1442CC,
+ SRV_VALID_1442CC,
+ SRV_BRANCHIF(0x00, gMEventSrvScript_UnableToSend),
+ SRV_BRANCH(gMEventSrvScript_SentNewsSuccess)
+};
-gMEventSrvScript_SendCard:: @ 8468BCC
- .4byte 0x1a, 0x00, NULL @ BUFFER_SAVED_CARD
- .4byte 0x1c, 0x00, NULL @ RAM_SCRIPT_IF_VALID
- .4byte 0x12, 0x20, gMEventClientScript_Send1442CC @ SEND
- .4byte 0x01, 0x00, NULL @ WAIT SEND
- .4byte 0x02, 0x11, NULL @ RECV
- .4byte 0x05, 0x00, NULL @ READ_1442CC
- .4byte 0x06, 0x00, NULL @ VALID_1442CC
- .4byte 0x04, 0x00, gMEventSrvScript_UnableToSend @ BRANCH_EQ
- .4byte 0x07, 0x00, NULL @ CHECK_1442CC_14
- .4byte 0x04, 0x02, gMEventSrvScript_AskClientToOverwriteCard @ BRANCH_EQ
- .4byte 0x04, 0x00, gMEventSrvScript_SendCardSuccess @ BRANCH_EQ
- .4byte 0x03, 0x00, gMEventSrvScript_OtherTrnHasCard @ BRANCH
+const struct mevent_server_cmd gMEventSrvScript_SendCard[] = {
+ SRV_BUFFER_CARD,
+ SRV_RAM_SCRIPT_IF_VALID,
+ SRV_SEND(0x20, gMEventClientScript_Send1442CC),
+ SRV_WAITSND,
+ SRV_RECV(0x11),
+ SRV_READ_1442CC,
+ SRV_VALID_1442CC,
+ SRV_BRANCHIF(0x00, gMEventSrvScript_UnableToSend),
+ SRV_CHECK_1442CC_14,
+ SRV_BRANCHIF(0x02, gMEventSrvScript_AskClientToOverwriteCard),
+ SRV_BRANCHIF(0x00, gMEventSrvScript_SendCardSuccess),
+ SRV_BRANCH(gMEventSrvScript_OtherTrnHasCard)
+};
diff --git a/data/mevent/script_ish.inc b/data/mevent/script_ish.inc
index ed6b639da..40f6a58cd 100644
--- a/data/mevent/script_ish.inc
+++ b/data/mevent/script_ish.inc
@@ -1,65 +1,77 @@
-gMEventClientScript_InotialListen:: @ 84687E0
- .4byte 0x02, 0x10 @ RECEIVE ID(0x10)
- .4byte 0x04, 0x00 @ JUMP TO RECEIVE BUFFER
+const struct mevent_client_cmd gMEventClientScript_InitialListen[] = { // 84687E0
+ CLI_RECEIVE(0x10),
+ CLI_JUMPBUF
+};
-gMEventClientScript_Send1442CC::
- .4byte 0x08, 0x00 @ SEND HEADER MAYBE
- .4byte 0x03, 0x00 @ WAIT SEND
- .4byte 0x02, 0x10 @ RECEIVE ID(0x10)
- .4byte 0x04, 0x00 @ JUMP TO RECEIVE BUFFER
+const struct mevent_client_cmd gMEventClientScript_Send1442CC[] = {
+ CLI_SNDHEAD,
+ CLI_WAITSND,
+ CLI_RECEIVE(0x10),
+ CLI_JUMPBUF
+};
-gMEventClientScript_UnableToRecv:: @ can't accept card or news
- .4byte 0x14, 0x00 @ SEND ALL
- .4byte 0x01, 0x0a @ RETURN 0x0a
+const struct mevent_client_cmd gMEventClientScript_UnableToRecv[] = { // can't accept card or news
+ CLI_SENDALL,
+ CLI_RETURN(0x0a)
+};
-gMEventClientScript_CommError:: @ comm error
- .4byte 0x14, 0x00 @ SEND ALL
- .4byte 0x01, 0x0b @ RETURN 0x0b
+const struct mevent_client_cmd gMEventClientScript_CommError[] = { // comm error
+ CLI_SENDALL,
+ CLI_RETURN(0x0b)
+};
-gMEventClientScript_NothingSentOver:: @ nothing sent
- .4byte 0x14, 0x00 @ SEND ALL
- .4byte 0x01, 0x00 @ RETURN 0x00
+const struct mevent_client_cmd gMEventClientScript_NothingSentOver[] = { // nothing sent
+ CLI_SENDALL,
+ CLI_RETURN(0x00)
+};
-gMEventClientScript_ReceiveCardAndReturnSuccess:: @ card success
- .4byte 0x02, 0x16 @ RECEIVE ID(0x16)
- .4byte 0x0a, 0x00 @ RECEIVE_TO_SAVE_FILE
- .4byte 0x02, 0x19 @ RECEIVE ID(0x19)
- .4byte 0x11, 0x00 @ RECEIVE_TO_RAM_SCRIPT
- .4byte 0x14, 0x00 @ SEND ALL
- .4byte 0x01, 0x02 @ RETURN 0x02
+const struct mevent_client_cmd gMEventClientScript_ReceiveCardAndReturnSuccess[] = { // card success
+ CLI_RECEIVE(0x16),
+ CLI_RECVSAV,
+ CLI_RECEIVE(0x19),
+ CLI_RECVRAM,
+ CLI_SENDALL,
+ CLI_RETURN(0x02)
+};
-gMEventClientScript_ReceiveNewsAndValidate::
- .4byte 0x02, 0x17 @ RECEIVE ID(0x17)
- .4byte 0x09, 0x00 @ VALIDATE NEWS
- .4byte 0x03, 0x00 @ WAIT SEND
- .4byte 0x02, 0x10 @ RECEIVE ID(0x10)
- .4byte 0x04, 0x00 @ JUMP TO RECEIVE BUFFER
+const struct mevent_client_cmd gMEventClientScript_ReceiveNewsAndValidate[] = {
+ CLI_RECEIVE(0x17),
+ CLI_VLDNEWS,
+ CLI_WAITSND,
+ CLI_RECEIVE(0x10),
+ CLI_JUMPBUF
+};
-gMEventClientScript_AlreadyHadNews:: @ already had news
- .4byte 0x14, 0x00 @ SEND ALL
- .4byte 0x01, 0x07 @ RETURN 0x07
+const struct mevent_client_cmd gMEventClientScript_AlreadyHadNews[] = { // already had news
+ CLI_SENDALL,
+ CLI_RETURN(0x07)
+};
-gMEventClientScript_RecvNewsSuccess:: @ news success
- .4byte 0x14, 0x00 @ SEND ALL
- .4byte 0x01, 0x03 @ RETURN 0x03
+const struct mevent_client_cmd gMEventClientScript_RecvNewsSuccess[] = { // news success
+ CLI_SENDALL,
+ CLI_RETURN(0x03)
+};
-gMEventClientScript_AskWouldLikeToTossCard::
- .4byte 0x0d, 0x00 @ REQUEST PARAMETER
- .4byte 0x0e, 0x00 @ SEND PARAMETER
- .4byte 0x03, 0x00 @ WAIT SEND
- .4byte 0x02, 0x10 @ RECEIVE ID(0x10)
- .4byte 0x04, 0x00 @ JUMP TO RECEIVE BUFFER
+const struct mevent_client_cmd gMEventClientScript_AskWouldLikeToTossCard[] = {
+ CLI_REQWORD,
+ CLI_SNDWORD,
+ CLI_WAITSND,
+ CLI_RECEIVE(0x10),
+ CLI_JUMPBUF
+};
-gMEventClientScript_OtherTrainerCanceled:: @ comm canceled
- .4byte 0x14, 0x00 @ SEND ALL
- .4byte 0x01, 0x09 @ RETURN 0x09
+const struct mevent_client_cmd gMEventClientScript_OtherTrainerCanceled[] = { // comm canceled
+ CLI_SENDALL,
+ CLI_RETURN(0x09)
+};
-gMEventClientScript_AlreadyHadCard:: @ already had card
- .4byte 0x14, 0x00 @ SEND ALL
- .4byte 0x01, 0x05 @ RETURN 0x05
+const struct mevent_client_cmd gMEventClientScript_AlreadyHadCard[] = { // already had card
+ CLI_SENDALL,
+ CLI_RETURN(0x05)
+};
-gMEventClientScript_SuccessFromBuffer:: @ success from buffer
- .4byte 0x02, 0x15 @ RECEIVE ID(0x15)
- .4byte 0x0c, 0x00 @ READ PACKET AND COMPUTE SOMETHING
- .4byte 0x14, 0x00 @ SEND ALL
- .4byte 0x01, 0x0d @ RETURN 0x0d
+const struct mevent_client_cmd gMEventClientScript_SuccessFromBuffer[] = { // success from buffer
+ CLI_RECEIVE(0x15),
+ CLI_RECVBUF,
+ CLI_SENDALL,
+ CLI_RETURN(0x0d)
diff --git a/include/link_rfu.h b/include/link_rfu.h
index 6e6e5f7a3..671488be0 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -43,4 +43,7 @@ void sub_80FBB20(void);
bool8 sub_80FA484(bool32 a0);
void var_800D_set_xB(void);
+#include "mevent_server.h"
+extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[];
+
#endif //GUARD_LINK_RFU_H
diff --git a/include/mevent_server.h b/include/mevent_server.h
index ddc00b978..b691e9e1f 100644
--- a/include/mevent_server.h
+++ b/include/mevent_server.h
@@ -37,6 +37,20 @@ struct mevent_client_cmd
u32 parameter;
};
+// Client commands
+#define CLI_RETURN(x) {.instr = 1, .parameter = x}
+#define CLI_RECEIVE(x) {.instr = 2, .parameter = x}
+#define CLI_WAITSND {.instr = 3, .parameter = 0}
+#define CLI_JUMPBUF {.instr = 4, .parameter = 0}
+#define CLI_SNDHEAD {.instr = 8, .parameter = 0}
+#define CLI_VLDNEWS {.instr = 9, .parameter = 0}
+#define CLI_RECVSAV {.instr = 10, .parameter = 0}
+#define CLI_RECVBUF {.instr = 12, .parameter = 0}
+#define CLI_REQWORD {.instr = 13, .parameter = 0}
+#define CLI_SNDWORD {.instr = 14, .parameter = 0}
+#define CLI_RECVRAM {.instr = 17, .parameter = 0}
+#define CLI_SENDALL {.instr = 20, .parameter = 0}
+
struct mevent_client
{
u32 unk_00;
@@ -58,6 +72,24 @@ struct mevent_server_cmd
void * parameter;
};
+// Server commands
+#define SRV_RETURN(x) {.instr = 0, .flag = x}
+#define SRV_WAITSND {.instr = 1}
+#define SRV_RECV(x) {.instr = 2, .flag = x}
+#define SRV_BRANCH(y) {.instr = 3, .parameter = (void *)y}
+#define SRV_BRANCHIF(x, y) {.instr = 4, .flag = x, .parameter = (void *)y}
+#define SRV_READ_1442CC {.instr = 5}
+#define SRV_VALID_1442CC {.instr = 6}
+#define SRV_CHECK_1442CC_14 {.instr = 7}
+#define SRV_READWORD {.instr = 8}
+#define SRV_SEND_CARD {.instr = 13}
+#define SRV_SEND_NEWS {.instr = 14}
+#define SRV_BUFFER_SEND {.instr = 15}
+#define SRV_SEND(x, y) {.instr = 18, .flag = x, .parameter = (void *)y}
+#define SRV_BUFFER_CARD {.instr = 26}
+#define SRV_BUFFER_NEWS {.instr = 27}
+#define SRV_RAM_SCRIPT_IF_VALID {.instr = 28}
+
struct mevent_srv_common
{
u32 unk_00;
diff --git a/ld_script.txt b/ld_script.txt
index c5d5dc431..d40c88c0a 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -536,7 +536,7 @@ SECTIONS {
src/mevent_client.o(.rodata);
src/mevent_server.o(.rodata);
src/mevent_8145654.o(.rodata);
- data/data_8466FB8.o(.rodata);
+ src/mevent_scripts.o(.rodata);
src/menews_jisan.o(.rodata);
src/menews_jisan.o(.rodata.str1.4);
. = ALIGN(4);
diff --git a/src/mevent_client.c b/src/mevent_client.c
index c2a86afdd..4da0b4bc1 100644
--- a/src/mevent_client.c
+++ b/src/mevent_client.c
@@ -14,7 +14,7 @@ static void mevent_client_init(struct mevent_client *, u32, u32);
static u32 mevent_client_exec(struct mevent_client *);
static void mevent_client_free_resources(struct mevent_client *);
-extern const struct mevent_client_cmd gMEventClientScript_InotialListen[];
+extern const struct mevent_client_cmd gMEventClientScript_InitialListen[];
void mevent_client_do_init(void)
{
@@ -89,7 +89,7 @@ static void mevent_client_send_word(struct mevent_client * svr, u32 ident, u32 w
static u32 client_mainseq_0(struct mevent_client * svr)
{
// init
- memcpy(svr->cmdBuffer, gMEventClientScript_InotialListen, ME_SEND_BUF_SIZE);
+ memcpy(svr->cmdBuffer, gMEventClientScript_InitialListen, ME_SEND_BUF_SIZE);
svr->cmdidx = 0;
svr->mainseqno = 4;
svr->flag = 0;
diff --git a/src/mevent_scripts.c b/src/mevent_scripts.c
new file mode 100644
index 000000000..04d44f603
--- /dev/null
+++ b/src/mevent_scripts.c
@@ -0,0 +1,192 @@
+#include "global.h"
+#include "mevent_server.h"
+
+extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[];
+
+// Unreferenced
+const u8 gUnknown_84687A0[] = _("You have collected all STAMPs!\nWant to input a CARD as a prize?");
+
+/* CLIENT SCRIPTS */
+
+const struct mevent_client_cmd gMEventClientScript_InitialListen[] = { // 84687E0
+ CLI_RECEIVE(0x10),
+ CLI_JUMPBUF
+};
+
+const struct mevent_client_cmd gMEventClientScript_Send1442CC[] = {
+ CLI_SNDHEAD,
+ CLI_WAITSND,
+ CLI_RECEIVE(0x10),
+ CLI_JUMPBUF
+};
+
+const struct mevent_client_cmd gMEventClientScript_UnableToRecv[] = { // can't accept card or news
+ CLI_SENDALL,
+ CLI_RETURN(0x0a)
+};
+
+const struct mevent_client_cmd gMEventClientScript_CommError[] = { // comm error
+ CLI_SENDALL,
+ CLI_RETURN(0x0b)
+};
+
+const struct mevent_client_cmd gMEventClientScript_NothingSentOver[] = { // nothing sent
+ CLI_SENDALL,
+ CLI_RETURN(0x00)
+};
+
+const struct mevent_client_cmd gMEventClientScript_ReceiveCardAndReturnSuccess[] = { // card success
+ CLI_RECEIVE(0x16),
+ CLI_RECVSAV,
+ CLI_RECEIVE(0x19),
+ CLI_RECVRAM,
+ CLI_SENDALL,
+ CLI_RETURN(0x02)
+};
+
+const struct mevent_client_cmd gMEventClientScript_ReceiveNewsAndValidate[] = {
+ CLI_RECEIVE(0x17),
+ CLI_VLDNEWS,
+ CLI_WAITSND,
+ CLI_RECEIVE(0x10),
+ CLI_JUMPBUF
+};
+
+const struct mevent_client_cmd gMEventClientScript_AlreadyHadNews[] = { // already had news
+ CLI_SENDALL,
+ CLI_RETURN(0x07)
+};
+
+const struct mevent_client_cmd gMEventClientScript_RecvNewsSuccess[] = { // news success
+ CLI_SENDALL,
+ CLI_RETURN(0x03)
+};
+
+const struct mevent_client_cmd gMEventClientScript_AskWouldLikeToTossCard[] = {
+ CLI_REQWORD,
+ CLI_SNDWORD,
+ CLI_WAITSND,
+ CLI_RECEIVE(0x10),
+ CLI_JUMPBUF
+};
+
+const struct mevent_client_cmd gMEventClientScript_OtherTrainerCanceled[] = { // comm canceled
+ CLI_SENDALL,
+ CLI_RETURN(0x09)
+};
+
+const struct mevent_client_cmd gMEventClientScript_AlreadyHadCard[] = { // already had card
+ CLI_SENDALL,
+ CLI_RETURN(0x05)
+};
+
+const struct mevent_client_cmd gMEventClientScript_SuccessFromBuffer[] = { // success from buffer
+ CLI_RECEIVE(0x15),
+ CLI_RECVBUF,
+ CLI_SENDALL,
+ CLI_RETURN(0x0d)
+};
+
+/* SERVER SCRIPTS */
+
+const struct mevent_server_cmd gMEventSrvScript_UnableToSend[] = {
+ SRV_SEND(0x10, gMEventClientScript_UnableToRecv),
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x0a)
+};
+
+const struct mevent_server_cmd gUnknown_8468950[] = {
+ SRV_SEND(0x10, gMEventClientScript_CommError),
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x0b)
+};
+
+const struct mevent_server_cmd gUnknown_8468980[] = {
+ SRV_SEND(0x10, gMEventClientScript_OtherTrainerCanceled),
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x09)
+};
+
+const struct mevent_server_cmd gMEventSrvScript_OtherTrnHasNews[] = {
+ SRV_SEND(0x10, gMEventClientScript_AlreadyHadNews),
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x07)
+};
+
+const struct mevent_server_cmd gMEventSrvScript_SentNewsSuccess[] = {
+ SRV_SEND(0x28, gMEventClientScript_ReceiveNewsAndValidate),
+ SRV_WAITSND,
+ SRV_SEND_NEWS,
+ SRV_WAITSND,
+ SRV_RECV(0x13),
+ SRV_READWORD,
+ SRV_BRANCHIF(0x01, gMEventSrvScript_OtherTrnHasNews),
+ SRV_SEND(0x10, gMEventClientScript_RecvNewsSuccess),
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x03)
+};
+
+const struct mevent_server_cmd gMEventSrvScript_SendCardSuccess[] = {
+ SRV_SEND(0x30, gMEventClientScript_ReceiveCardAndReturnSuccess),
+ SRV_WAITSND,
+ SRV_SEND_CARD,
+ SRV_WAITSND,
+ SRV_BUFFER_SEND,
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x02)
+};
+
+const struct mevent_server_cmd gMEventSrvScript_AskClientToOverwriteCard[] = {
+ SRV_SEND(0x28, gMEventClientScript_AskWouldLikeToTossCard),
+ SRV_WAITSND,
+ SRV_RECV(0x13),
+ SRV_READWORD,
+ SRV_BRANCHIF(0x00, gMEventSrvScript_SendCardSuccess),
+ SRV_BRANCH(gMEventSrvScript_OtherTrainerCanceled)
+};
+
+const struct mevent_server_cmd gMEventSrvScript_OtherTrnHasCard[] = {
+ SRV_SEND(0x10, gMEventClientScript_AlreadyHadCard),
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x05)
+};
+
+const struct mevent_server_cmd gUnknown_8468B3C[] = {
+ SRV_SEND(0x10, gMEventClientScript_NothingSentOver),
+ SRV_WAITSND,
+ SRV_RECV(0x14),
+ SRV_RETURN(0x00)
+};
+
+const struct mevent_server_cmd gMEventSrvScript_SendNews[] = {
+ SRV_BUFFER_NEWS,
+ SRV_SEND(0x20, gMEventClientScript_Send1442CC),
+ SRV_WAITSND,
+ SRV_RECV(0x11),
+ SRV_READ_1442CC,
+ SRV_VALID_1442CC,
+ SRV_BRANCHIF(0x00, gMEventSrvScript_UnableToSend),
+ SRV_BRANCH(gMEventSrvScript_SentNewsSuccess)
+};
+
+const struct mevent_server_cmd gMEventSrvScript_SendCard[] = {
+ SRV_BUFFER_CARD,
+ SRV_RAM_SCRIPT_IF_VALID,
+ SRV_SEND(0x20, gMEventClientScript_Send1442CC),
+ SRV_WAITSND,
+ SRV_RECV(0x11),
+ SRV_READ_1442CC,
+ SRV_VALID_1442CC,
+ SRV_BRANCHIF(0x00, gMEventSrvScript_UnableToSend),
+ SRV_CHECK_1442CC_14,
+ SRV_BRANCHIF(0x02, gMEventSrvScript_AskClientToOverwriteCard),
+ SRV_BRANCHIF(0x00, gMEventSrvScript_SendCardSuccess),
+ SRV_BRANCH(gMEventSrvScript_OtherTrnHasCard)
+};