summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-11-30 11:48:13 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-11-30 11:48:13 -0500
commitde6cf9f0de562bfc3085ffc2e07825b4487b4b9e (patch)
treea1380f5c05d15a5ce0bd82936e37156cb104cff3 /src
parent5a80a339cd04864f36bae99eb4b35de2f8bbab16 (diff)
through sub_8144C80
Diffstat (limited to 'src')
-rw-r--r--src/mevent_server.c115
1 files changed, 113 insertions, 2 deletions
diff --git a/src/mevent_server.c b/src/mevent_server.c
index 8c68a9350..a94d8a0a1 100644
--- a/src/mevent_server.c
+++ b/src/mevent_server.c
@@ -51,6 +51,11 @@ EWRAM_DATA struct mevent_srv_ish * gUnknown_203F3C0 = NULL;
u32 sub_814490C(struct mevent_srv_sub *);
u32 sub_81449E0(struct mevent_srv_sub *);
+void mevent_srv_ish_init(struct mevent_srv_ish *, u32, u32);
+u32 mevent_srv_ish_exec(struct mevent_srv_ish *);
+void sub_8144BC0(struct mevent_srv_ish *);
+
+extern u8 gUnknown_84687E0[0x400];
u32 sub_8144844(struct mevent_srv_sub * srv)
{
@@ -62,7 +67,7 @@ u32 sub_8144850(struct mevent_srv_sub * srv)
return srv->unk_24(srv);
}
-void sub_814485C(struct mevent_srv_sub * srv, u8 a1, u8 a2)
+void sub_814485C(struct mevent_srv_sub * srv, u32 a1, u32 a2)
{
srv->unk_04 = a1;
srv->unk_05 = a2;
@@ -79,7 +84,7 @@ void sub_814485C(struct mevent_srv_sub * srv, u8 a1, u8 a2)
srv->unk_20 = sub_814490C;
}
-void sub_8144888(struct mevent_srv_sub * srv, u16 a1, void * a2, u32 a3)
+void sub_8144888(struct mevent_srv_sub * srv, u32 a1, void * a2, u32 a3)
{
srv->unk_00 = 0;
srv->unk_0E = a1;
@@ -247,3 +252,109 @@ bool32 sub_81449E0(struct mevent_srv_sub * srv)
return FALSE;
}
+
+void sub_8144AEC(void)
+{
+ gUnknown_203F3C0 = AllocZeroed(sizeof(struct mevent_srv_ish));
+ mevent_srv_ish_init(gUnknown_203F3C0, 1, 0);
+}
+
+u32 sub_8144B0C(u16 * a0)
+{
+ u32 result;
+ if (gUnknown_203F3C0 == NULL)
+ return 6;
+ result = mevent_srv_ish_exec(gUnknown_203F3C0);
+ if (result == 6)
+ {
+ *a0 = gUnknown_203F3C0->unk_04;
+ sub_8144BC0(gUnknown_203F3C0);
+ Free(gUnknown_203F3C0);
+ gUnknown_203F3C0 = NULL;
+ }
+ return result;
+}
+
+void sub_8144B48(void)
+{
+ gUnknown_203F3C0->unk_0C++;
+}
+
+void * sub_8144B58(void)
+{
+ return gUnknown_203F3C0->unk_20;
+}
+
+void sub_8144B64(u32 a0)
+{
+ gUnknown_203F3C0->unk_04 = a0;
+}
+
+void mevent_srv_ish_init(struct mevent_srv_ish * srv, u32 a1, u32 a2)
+{
+ srv->unk_00 = 0;
+ srv->unk_08 = 0;
+ srv->unk_0C = 0;
+ srv->unk_14 = AllocZeroed(0x400);
+ srv->unk_18 = AllocZeroed(0x400);
+ srv->unk_1C = AllocZeroed(0x400);
+ srv->unk_20 = AllocZeroed(0x40);
+ sub_814485C(&srv->unk_24, a1, a2);
+}
+
+void sub_8144BC0(struct mevent_srv_ish * srv)
+{
+ Free(srv->unk_14);
+ Free(srv->unk_18);
+ Free(srv->unk_1C);
+ Free(srv->unk_20);
+}
+
+void sub_8144BE4(struct mevent_srv_ish * srv)
+{
+ memcpy(srv->unk_1C, srv->unk_18, 0x400);
+ srv->unk_10 = 0;
+}
+
+void sub_8144C00(struct mevent_srv_ish * srv, u32 a1, u32 a2)
+{
+ CpuFill32(0, srv->unk_14, 0x400);
+ *(u32 *)srv->unk_14 = a2;
+ sub_8144888(&srv->unk_24, a1, srv->unk_14, 4);
+}
+
+// funcs in array gUnknown_8466F60
+
+u32 sub_8144C34(struct mevent_srv_ish * srv)
+{
+ memcpy(srv->unk_1C, gUnknown_84687E0, sizeof(gUnknown_84687E0));
+ srv->unk_10 = 0;
+ srv->unk_08 = 4;
+ srv->unk_0C = 0;
+ return 0;
+}
+
+u32 sub_8144C5C(struct mevent_srv_ish * srv)
+{
+ return 6;
+}
+
+u32 sub_8144C60(struct mevent_srv_ish * srv)
+{
+ if (sub_8144844(&srv->unk_24))
+ {
+ srv->unk_08 = 4;
+ srv->unk_0C = 0;
+ }
+ return 1;
+}
+
+u32 sub_8144C80(struct mevent_srv_ish * srv)
+{
+ if (sub_8144850(&srv->unk_24))
+ {
+ srv->unk_08 = 4;
+ srv->unk_0C = 0;
+ }
+ return 1;
+}