summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2020-12-04 15:05:07 -0600
committerSeth Barberee <seth.barberee@gmail.com>2020-12-04 15:05:07 -0600
commit195eb49aa85f75baf70190734e840e0dd45dccea (patch)
tree2905e42c419d476012c84522048de500b918f913
parent0d5c196bff6f7d4d073d1a8fa5d9c50ee6023b5f (diff)
more decomping of funcs
-rw-r--r--asm/code_8027C84.s133
-rw-r--r--src/code_8028DE8.c115
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;