diff options
author | red031000 <rubenru09@aol.com> | 2020-11-01 20:11:23 +0000 |
---|---|---|
committer | red031000 <rubenru09@aol.com> | 2020-11-01 20:11:23 +0000 |
commit | ce3a633c5af004dc2d7101d223c95d2a5e1e1471 (patch) | |
tree | 143fc183a101ea474ad3c18370102aa91325a070 | |
parent | 7760cf77674e0903b7a2405869c5449f1d9289f5 (diff) |
decompile MOD05_021E72FC
-rw-r--r-- | arm9/arm9.lsf | 4 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021E72FC_asm.s (renamed from arm9/modules/05/asm/mod05_021E72FC_asm2.s) | 0 | ||||
-rw-r--r-- | arm9/modules/05/asm/mod05_021E72FC_asm1.s | 55 | ||||
-rw-r--r-- | arm9/modules/05/include/mod05_021E72FC.h | 1 | ||||
-rw-r--r-- | arm9/modules/05/src/mod05_021E72FC_src.c | 37 |
5 files changed, 39 insertions, 58 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index eb4e1fa1..d3eb80a0 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -554,10 +554,8 @@ Overlay MODULE_05 Object mod05_021E5C8C.o Object mod05_021E5E10.o Object mod05_021E5FD8.o - #kinda awkward split, sorry - Object mod05_021E72FC_asm1.o Object mod05_021E72FC_src.o - Object mod05_021E72FC_asm2.o + Object mod05_021E72FC_asm.o Object mod05_021E7504.o Object module_05.o } diff --git a/arm9/modules/05/asm/mod05_021E72FC_asm2.s b/arm9/modules/05/asm/mod05_021E72FC_asm.s index 2bfcbe12..2bfcbe12 100644 --- a/arm9/modules/05/asm/mod05_021E72FC_asm2.s +++ b/arm9/modules/05/asm/mod05_021E72FC_asm.s diff --git a/arm9/modules/05/asm/mod05_021E72FC_asm1.s b/arm9/modules/05/asm/mod05_021E72FC_asm1.s deleted file mode 100644 index 84999c30..00000000 --- a/arm9/modules/05/asm/mod05_021E72FC_asm1.s +++ /dev/null @@ -1,55 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - .section .text - .balign 4, 0 - - #in asm2 - .extern MOD05_021E73B4 - .extern MOD05_021E74D4 - - thumb_func_start MOD05_021E72FC -MOD05_021E72FC: ; 0x021E72FC - push {r4, r5, r6, lr} - add r6, r1, #0 - add r5, r0, #0 - add r0, r6, #0 - bl FUN_020553A0 - bl FUN_02058720 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - add r0, r4, #0 - bl FUN_02054B30 - cmp r0, #1 - bne _021E731E - mov r2, #3 - b _021E734C -_021E731E: - add r0, r4, #0 - bl FUN_02054B3C - cmp r0, #1 - bne _021E732C - mov r2, #2 - b _021E734C -_021E732C: - add r0, r4, #0 - bl FUN_02054B48 - cmp r0, #1 - bne _021E733A - mov r2, #0 - b _021E734C -_021E733A: - add r0, r4, #0 - bl FUN_02054B54 - cmp r0, #1 - bne _021E7348 - mov r2, #1 - b _021E734C -_021E7348: - mov r0, #0 - pop {r4, r5, r6, pc} -_021E734C: - add r0, r5, #0 - add r1, r6, #0 - bl MOD05_021E7358 - mov r0, #1 - pop {r4, r5, r6, pc} diff --git a/arm9/modules/05/include/mod05_021E72FC.h b/arm9/modules/05/include/mod05_021E72FC.h index 406d6f6e..3aba6c4d 100644 --- a/arm9/modules/05/include/mod05_021E72FC.h +++ b/arm9/modules/05/include/mod05_021E72FC.h @@ -12,6 +12,7 @@ typedef struct UnkStruct021E7358 } UnkStruct021E7358; +BOOL MOD05_021E72FC(u32 param0, u32 param1); void MOD05_021E7358(u32 param0, u32 param1, u32 param2); u32 MOD05_021E7388(u32 param0); diff --git a/arm9/modules/05/src/mod05_021E72FC_src.c b/arm9/modules/05/src/mod05_021E72FC_src.c index 90b05ce2..63dc6a7c 100644 --- a/arm9/modules/05/src/mod05_021E72FC_src.c +++ b/arm9/modules/05/src/mod05_021E72FC_src.c @@ -5,6 +5,43 @@ extern UnkStruct021E7358 *MOD05_021E74D4(u32 param0); extern void FUN_020054C8(u32 param0); extern MOD05_021E73B4(); extern void FUN_020463CC(u32 param0, void *func, UnkStruct021E7358 *param2); +extern void FUN_020553A0(u32 param0); +extern u32 FUN_02058720(void); +extern BOOL FUN_02054B30(u8 param0); +extern BOOL FUN_02054B3C(u8 param0); +extern BOOL FUN_02054B48(u8 param0); +extern BOOL FUN_02054B54(u8 param0); + +THUMB_FUNC BOOL MOD05_021E72FC(u32 param0, u32 param1) +{ + FUN_020553A0(param1); + u8 res = (u8)FUN_02058720(); + u32 r2; + if (FUN_02054B30(res) == TRUE) + { + r2 = 3; + goto label; + } + else if (FUN_02054B3C(res) == TRUE) + { + r2 = 2; + goto label; + } + else if (FUN_02054B48(res) == TRUE) + { + r2 = 0; + goto label; + } + else if (FUN_02054B54(res) == TRUE) + { + r2 = 1; + goto label; + } + return FALSE; +label: + MOD05_021E7358(param0, param1, r2); + return TRUE; +} THUMB_FUNC void MOD05_021E7358(u32 param0, u32 param1, u32 param2) { |