diff options
Diffstat (limited to 'arm9/src')
-rw-r--r-- | arm9/src/font.c | 113 |
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) { |