summaryrefslogtreecommitdiff
path: root/arm9/src
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/src')
-rw-r--r--arm9/src/font.c113
1 files changed, 7 insertions, 106 deletions
diff --git a/arm9/src/font.c b/arm9/src/font.c
index bae5598a..98885671 100644
--- a/arm9/src/font.c
+++ b/arm9/src/font.c
@@ -10,7 +10,7 @@ struct UnkStruct_02002C14 *UNK_02106FC8;
struct UnkStruct_02002C14 UNK_02106FCC;
-const u16 UNK_020ECB54[] = { 0, 0, 1, 0, 2, 0, 3, 0 };
+const u16 UNK_020ECB54[4][2] = { {0, 0}, {1, 0}, {2, 0}, {3, 0} };
const struct FontInfo gFontInfos[5] = {
{ 0x0B, 0x10, 0x00, 0x00, 0x00, 0x01, 0x0F, 0x02 },
@@ -42,7 +42,7 @@ THUMB_FUNC void FUN_02002C14()
THUMB_FUNC void FUN_02002C50(u32 param0, u32 param1)
{
UNK_02106FC8->unk94[param0] =
- FUN_02021590(14, UNK_020ECB54[param0 * 2], 1, UNK_020ECB54[param0 * 2 + 1], param1);
+ FUN_02021590(14, UNK_020ECB54[param0][0], 1, UNK_020ECB54[param0][1], param1);
}
THUMB_FUNC void FUN_02002C84(s32 param0, u32 param1)
@@ -61,13 +61,8 @@ THUMB_FUNC void FUN_02002CC0(s32 param0)
FUN_020215E0(UNK_02106FC8->unk94[param0], 1, 0);
}
-#ifdef NONMATCHING
-THUMB_FUNC void FUN_02002CF8(s32 param0)
+THUMB_FUNC void FUN_02002CF8(int param0)
{
- /*
- param0 is used as a index to a u32[]. The original assembly computes param0<<2 several times
- in the function where the present attempt computes it once and keep it r6.
- */
GF_ASSERT(param0 < 4);
@@ -76,23 +71,12 @@ THUMB_FUNC void FUN_02002CF8(s32 param0)
u32 i;
for (i = 0; i < 4; i++)
{
- if (i == param0)
+ if (i != param0 && UNK_020ECB54[i][0] == UNK_020ECB54[param0][0] &&
+ UNK_02106FC8->unk94[i] != NULL)
{
- continue;
+ UNK_02106FC8->unk84[i] = UNK_02106FC8->unk84[param0];
+ break;
}
-
- if (UNK_020ECB54[i * 2] != UNK_020ECB54[param0 * 2])
- {
- continue;
- }
-
- if (UNK_02106FC8->unk84[i] == NULL)
- {
- continue;
- }
-
- UNK_02106FC8->unk84[i] = UNK_02106FC8->unk84[param0];
- break;
}
if (i == 4)
@@ -108,89 +92,6 @@ THUMB_FUNC void FUN_02002CF8(s32 param0)
UNK_02106FC8->unk94[param0] = NULL;
}
}
-#else
-asm void FUN_02002CF8(s32 param0)
-{
- // clang-format off
- push {r3-r7, lr}
- add r4, r0, #0x0
- cmp r4, #0x4
- blt _02002D04
- bl GF_AssertFail
-_02002D04:
- ldr r0, =UNK_02106FC8
- lsl r6, r4, #0x2
- ldr r7, [r0, #0x0]
- add r0, r7, r6
- add r0, #0x84
- ldr r0, [r0, #0x0]
- mov r12, r0
- cmp r0, #0x0
- beq _02002D68
- ldr r2, =UNK_020ECB54
- mov r1, #0x0
- ldrh r0, [r2, r6]
- add r3, r7, #0x0
-_02002D1E:
- cmp r1, r4
- beq _02002D3E
- ldrh r5, [r2, #0x0]
- cmp r5, r0
- bne _02002D3E
- add r5, r3, #0x0
- add r5, #0x94
- ldr r5, [r5, #0x0]
- cmp r5, #0x0
- beq _02002D3E
- lsl r0, r1, #0x2
- add r2, r7, r0
- add r2, #0x84
- mov r0, r12
- str r0, [r2, #0x0]
- b _02002D48
-_02002D3E:
- add r1, r1, #0x1
- add r2, r2, #0x4
- add r3, r3, #0x4
- cmp r1, #0x4
- blo _02002D1E
-_02002D48:
- cmp r1, #0x4
- bne _02002D68
- ldr r0, =UNK_02106FC8
- lsl r5, r4, #0x2
- ldr r0, [r0, #0x0]
- add r0, r0, r5
- add r0, #0x84
- ldr r0, [r0, #0x0]
- bl FreeToHeap
- ldr r0, =UNK_02106FC8
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- add r0, r0, r5
- add r0, #0x84
- str r1, [r0, #0x0]
-_02002D68:
- ldr r0, =UNK_02106FC8
- ldr r0, [r0, #0x0]
- add r0, r0, r6
- add r0, #0x94
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02002D88
- bl FUN_020215C8
- ldr r0, =UNK_02106FC8
- mov r2, #0x0
- ldr r1, [r0, #0x0]
- lsl r0, r4, #0x2
- add r0, r1, r0
- add r0, #0x94
- str r2, [r0, #0x0]
-_02002D88:
- pop {r3-r7, pc}
- // clang-format on
-}
-#endif
THUMB_FUNC struct UnkStruct_02002C14 *FUN_02002D94(u32 param0, u32 param1)
{