diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2020-12-04 15:05:07 -0600 |
---|---|---|
committer | Seth Barberee <seth.barberee@gmail.com> | 2020-12-04 15:05:07 -0600 |
commit | 195eb49aa85f75baf70190734e840e0dd45dccea (patch) | |
tree | 2905e42c419d476012c84522048de500b918f913 | |
parent | 0d5c196bff6f7d4d073d1a8fa5d9c50ee6023b5f (diff) |
more decomping of funcs
-rw-r--r-- | asm/code_8027C84.s | 133 | ||||
-rw-r--r-- | src/code_8028DE8.c | 115 |
2 files changed, 104 insertions, 144 deletions
diff --git a/asm/code_8027C84.s b/asm/code_8027C84.s index b4c818e..4cd9112 100644 --- a/asm/code_8027C84.s +++ b/asm/code_8027C84.s @@ -1956,137 +1956,4 @@ _08028CDA: bx r0 thumb_func_end sub_8028BF0 - thumb_func_start sub_8028CE0 -sub_8028CE0: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08028CF4 - movs r0, 0x3 - bl sub_8028B04 -_08028CF4: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8028CE0 - - thumb_func_start sub_8028CFC -sub_8028CFC: - push {r4,lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08028D42 - bl sub_8031050 - cmp r0, 0x3 - bhi _08028D42 - cmp r0, 0x2 - bcc _08028D42 - bl sub_8095350 - adds r4, r0, 0 - bl sub_80310B4 - ldr r0, _08028D38 - ldr r0, [r0] - movs r1, 0xA8 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - cmp r4, r0 - beq _08028D3C - movs r0, 0x17 - bl sub_8028B04 - b _08028D42 - .align 2, 0 -_08028D38: .4byte gUnknown_203B2C0 -_08028D3C: - movs r0, 0x19 - bl sub_8028B04 -_08028D42: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8028CFC - - thumb_func_start sub_8028D4C -sub_8028D4C: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08028DE0 - ldr r0, _08028D78 - ldr r0, [r0] - movs r1, 0xA7 - lsls r1, 3 - adds r0, r1 - ldr r1, [sp] - str r1, [r0] - cmp r1, 0x6 - beq _08028DA2 - cmp r1, 0x6 - bgt _08028D7C - cmp r1, 0x5 - beq _08028D86 - b _08028DE0 - .align 2, 0 -_08028D78: .4byte gUnknown_203B2C0 -_08028D7C: - cmp r1, 0x7 - beq _08028DBE - cmp r1, 0xA - beq _08028DDA - b _08028DE0 -_08028D86: - movs r0, 0x2 - bl sub_8030C20 - lsls r0, 24 - cmp r0, 0 - beq _08028D9A - movs r0, 0xC - bl sub_8028B04 - b _08028DE0 -_08028D9A: - movs r0, 0xD - bl sub_8028B04 - b _08028DE0 -_08028DA2: - movs r0, 0x4 - bl sub_8030C20 - lsls r0, 24 - cmp r0, 0 - beq _08028DB6 - movs r0, 0xE - bl sub_8028B04 - b _08028DE0 -_08028DB6: - movs r0, 0xF - bl sub_8028B04 - b _08028DE0 -_08028DBE: - movs r0, 0 - bl sub_8030C20 - lsls r0, 24 - cmp r0, 0 - beq _08028DD2 - movs r0, 0x10 - bl sub_8028B04 - b _08028DE0 -_08028DD2: - movs r0, 0x11 - bl sub_8028B04 - b _08028DE0 -_08028DDA: - movs r0, 0x1 - bl sub_8028B04 -_08028DE0: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8028D4C - .align 2,0 diff --git a/src/code_8028DE8.c b/src/code_8028DE8.c index 91f5ae1..f65fecb 100644 --- a/src/code_8028DE8.c +++ b/src/code_8028DE8.c @@ -10,6 +10,99 @@ extern void sub_8095240(u8); extern void sub_809927C(u8); extern u32 *gUnknown_203B2C0; +extern u8 sub_8030C20(u32); +extern u32 sub_8031050(); +extern void sub_80310B4(); +extern u32 sub_8095350(); + +void sub_8028CE0() +{ + s32 temp; + + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(3); +} + +void sub_8028CFC() +{ + s32 temp; + u32 temp2; + + if(sub_80144A4(&temp) != 0) + { + return; + } + switch(sub_8031050()) + { + case 2: + case 3: + temp2 = sub_8095350(); + sub_80310B4(); + if(temp2 != gUnknown_203B2C0[0xA8 << 1]) + { + sub_8028B04(0x17); + } + else + { + sub_8028B04(0x19); + } + break; + default: + break; + } +} + +void sub_8028D4C() +{ + s32 temp; + + if(sub_80144A4(&temp) != 0) + { + return; + } + gUnknown_203B2C0[0xA7 << 1] = temp; + switch((s32)gUnknown_203B2C0[0xA7 << 1]) + { + case 5: + if(sub_8030C20(2) != 0) + { + sub_8028B04(12); + } + else + { + sub_8028B04(13); + } + break; + case 6: + if(sub_8030C20(4) != 0) + { + sub_8028B04(14); + } + else + { + sub_8028B04(15); + } + break; + case 7: + if(sub_8030C20(0) != 0) + { + sub_8028B04(16); + } + else + { + sub_8028B04(17); + } + break; + case 0xA: + sub_8028B04(1); + break; + default: + break; + } +} void sub_8028DE8(u32 r0) { @@ -22,7 +115,7 @@ void sub_8028DE8(u32 r0) sub_8028B04(r0); } -void sub_8028E08(u32 r0) +void sub_8028E08() { s32 temp; @@ -33,7 +126,7 @@ void sub_8028E08(u32 r0) sub_8028B04(0x12); } -void sub_8028E24(u32 r0) +void sub_8028E24() { s32 temp; @@ -54,7 +147,7 @@ void sub_8028E24(u32 r0) } } -void sub_8028E54(u32 r0) +void sub_8028E54() { s32 temp; @@ -75,7 +168,7 @@ void sub_8028E54(u32 r0) } } -void sub_8028E84(u32 r0) +void sub_8028E84() { s32 temp; @@ -88,7 +181,7 @@ void sub_8028E84(u32 r0) sub_8012574(0); } -void sub_8028EAC(u32 r0) +void sub_8028EAC() { s32 temp; @@ -103,7 +196,7 @@ void sub_8028EAC(u32 r0) } } -void sub_8028ED4(u32 r0) +void sub_8028ED4() { s32 temp; @@ -131,7 +224,7 @@ void sub_8028ED4(u32 r0) } } -void sub_8028F04(u32 r0) +void sub_8028F04() { s32 temp; s32 counter; @@ -147,7 +240,7 @@ void sub_8028F04(u32 r0) sub_8028B04(0x15); } -void sub_8028F30(u32 r0) +void sub_8028F30() { s32 temp; @@ -160,7 +253,7 @@ void sub_8028F30(u32 r0) sub_8012574(0); } -void sub_8028F58(u32 r0) +void sub_8028F58() { s32 temp; @@ -175,7 +268,7 @@ void sub_8028F58(u32 r0) } } -void sub_8028F80(u32 r0) +void sub_8028F80() { s32 temp; @@ -188,7 +281,7 @@ void sub_8028F80(u32 r0) sub_8028B04(3); } -void sub_8028FC0(u32 r0) +void sub_8028FC0() { s32 temp; |