diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-30 11:48:13 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-30 11:48:13 -0500 |
commit | de6cf9f0de562bfc3085ffc2e07825b4487b4b9e (patch) | |
tree | a1380f5c05d15a5ce0bd82936e37156cb104cff3 /src | |
parent | 5a80a339cd04864f36bae99eb4b35de2f8bbab16 (diff) |
through sub_8144C80
Diffstat (limited to 'src')
-rw-r--r-- | src/mevent_server.c | 115 |
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; +} |