From bcf6a119181df7c87fe3d8fdf8e78fa48ef248aa Mon Sep 17 00:00:00 2001 From: Nomura <72407407+Nomura-RH@users.noreply.github.com> Date: Sun, 25 Dec 2022 18:20:40 +0100 Subject: [PATCH] Match unk_0200B29C.c --- asm/include/unk_0200B29C.inc | 8 --- asm/unk_0200B29C.s | 104 ----------------------------------- main.lsf | 2 +- src/unk_0200B29C.c | 65 ++++++++++++++++++++++ 4 files changed, 66 insertions(+), 113 deletions(-) delete mode 100644 asm/include/unk_0200B29C.inc delete mode 100644 asm/unk_0200B29C.s create mode 100644 src/unk_0200B29C.c diff --git a/asm/include/unk_0200B29C.inc b/asm/include/unk_0200B29C.inc deleted file mode 100644 index 6e853a86c8..0000000000 --- a/asm/include/unk_0200B29C.inc +++ /dev/null @@ -1,8 +0,0 @@ -.public sub_0200B144 -.public sub_0200B190 -.public sub_0200B1B8 -.public sub_0200B1EC -.public sub_0200C388 -.public sub_02023790 -.public sub_020237BC -.public sub_02023868 diff --git a/asm/unk_0200B29C.s b/asm/unk_0200B29C.s deleted file mode 100644 index 0c2084c984..0000000000 --- a/asm/unk_0200B29C.s +++ /dev/null @@ -1,104 +0,0 @@ - .include "macros/function.inc" - .include "include/unk_0200B29C.inc" - - - - .text - - - thumb_func_start sub_0200B29C -sub_0200B29C: ; 0x0200B29C - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r7, r0, #0 - mov r0, #0 - str r0, [sp, #4] - add r5, r1, #0 - mov r0, #1 - ldr r1, [sp, #4] - lsl r0, r0, #0xa - add r6, r2, #0 - str r3, [sp] - bl sub_02023790 - add r4, r0, #0 - beq _0200B2E6 - add r0, r5, #0 - add r1, r6, #0 - bl sub_0200B1EC - add r5, r0, #0 - beq _0200B2E0 - add r0, r7, #0 - add r1, r4, #0 - add r2, r5, #0 - bl sub_0200C388 - ldr r1, [sp] - add r0, r4, #0 - bl sub_02023868 - str r0, [sp, #4] - add r0, r5, #0 - bl sub_020237BC -_0200B2E0: - add r0, r4, #0 - bl sub_020237BC -_0200B2E6: - ldr r0, [sp, #4] - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end sub_0200B29C - - thumb_func_start sub_0200B2EC -sub_0200B2EC: ; 0x0200B2EC - push {r4, r5, r6, lr} - add r5, r1, #0 - add r6, r0, #0 - ldr r2, _0200B328 ; =0x00000287 - mov r0, #1 - mov r1, #0x1a - add r3, r5, #0 - bl sub_0200B144 - add r4, r0, #0 - beq _0200B322 - mov r0, #0x10 - add r1, r5, #0 - bl sub_02023790 - add r5, r0, #0 - beq _0200B318 - add r0, r4, #0 - add r1, r6, #0 - add r2, r5, #0 - bl sub_0200B1B8 -_0200B318: - add r0, r4, #0 - bl sub_0200B190 - add r0, r5, #0 - pop {r4, r5, r6, pc} -_0200B322: - mov r0, #0 - pop {r4, r5, r6, pc} - nop -_0200B328: .word 0x00000287 - thumb_func_end sub_0200B2EC - - thumb_func_start sub_0200B32C -sub_0200B32C: ; 0x0200B32C - push {r3, r4, r5, lr} - mov r2, #0x67 - add r4, r0, #0 - add r3, r1, #0 - mov r0, #1 - mov r1, #0x1a - lsl r2, r2, #2 - bl sub_0200B144 - add r5, r0, #0 - beq _0200B354 - add r1, r4, #0 - bl sub_0200B1EC - add r4, r0, #0 - add r0, r5, #0 - bl sub_0200B190 - add r0, r4, #0 - pop {r3, r4, r5, pc} -_0200B354: - mov r0, #0 - pop {r3, r4, r5, pc} - thumb_func_end sub_0200B32C \ No newline at end of file diff --git a/main.lsf b/main.lsf index e7b359a4de..c2e8df0769 100644 --- a/main.lsf +++ b/main.lsf @@ -33,7 +33,7 @@ Static main Object asm/unk_0200A784.o Object asm/unk_0200A9DC.o Object asm/unk_0200AC5C.o - Object asm/unk_0200B29C.o + Object src/unk_0200B29C.o Object asm/unk_0200B358.o Object asm/unk_0200C440.o Object asm/unk_0200C6E4.o diff --git a/src/unk_0200B29C.c b/src/unk_0200B29C.c new file mode 100644 index 0000000000..87ac110325 --- /dev/null +++ b/src/unk_0200B29C.c @@ -0,0 +1,65 @@ +#include +#include + +#include "struct_decls/struct_0200B144_decl.h" +#include "struct_decls/struct_0200B358_decl.h" +#include "struct_decls/struct_02023790_decl.h" + +#include "unk_0200AC5C.h" +#include "unk_0200B29C.h" +#include "unk_0200B358.h" +#include "unk_02023790.h" + +UnkStruct_02023790 * sub_0200B29C (UnkStruct_0200B358 * param0, UnkStruct_0200B144 * param1, u32 param2, u32 param3) +{ + UnkStruct_02023790 * v0 = NULL; + UnkStruct_02023790 * v1; + + v1 = sub_02023790(1024, 0); + + if (v1) { + UnkStruct_02023790 * v2 = sub_0200B1EC(param1, param2); + + if (v2) { + sub_0200C388(param0, v1, v2); + v0 = sub_02023868(v1, param3); + sub_020237BC(v2); + } + + sub_020237BC(v1); + } + + return v0; +} + +UnkStruct_02023790 * sub_0200B2EC (u32 param0, u32 param1) +{ + UnkStruct_0200B144 * v0 = sub_0200B144(1, 26, 647, param1); + + if (v0) { + UnkStruct_02023790 * v1 = sub_02023790(16, param1); + + if (v1) { + sub_0200B1B8(v0, param0, v1); + } + + sub_0200B190(v0); + return v1; + } + + return NULL; +} + +UnkStruct_02023790 * sub_0200B32C (u32 param0, u32 param1) +{ + UnkStruct_0200B144 * v0 = sub_0200B144(1, 26, 412, param1); + + if (v0) { + UnkStruct_02023790 * v1 = sub_0200B1EC(v0, param0); + + sub_0200B190(v0); + return v1; + } + + return NULL; +}