Match sub_80069CC

This commit is contained in:
Kermalis 2023-08-05 18:43:24 -04:00
parent e83709c20e
commit e31da7df5c
2 changed files with 45 additions and 130 deletions

View File

@ -5,134 +5,6 @@
.text
thumb_func_start sub_80069CC
sub_80069CC:
push {r4-r6,lr}
adds r6, r0, 0
adds r4, r1, 0
adds r5, r3, 0
ldr r3, [sp, 0x10]
cmp r2, 0x1C
bgt _08006ABA
cmp r2, 0
blt _08006ABA
ldr r0, [r6, 0xC]
cmp r0, 0x7
bhi _08006ABA
lsls r0, 2
ldr r1, _080069F0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080069F0: .4byte _080069F4
.align 2, 0
_080069F4:
.4byte _08006A14
.4byte _08006ABA
.4byte _08006ABA
.4byte _08006A60
.4byte _08006A7C
.4byte _08006A9C
.4byte _08006A60
.4byte _08006AAC
_08006A14:
cmp r5, 0
bne _08006A34
lsls r1, r4, 1
lsls r0, r2, 6
adds r0, r3
adds r1, r0
ldr r2, _08006A30
adds r0, r2, 0
strh r0, [r1]
movs r0, 0x80
lsls r0, 4
adds r1, r0
adds r2, 0x44
b _08006A92
.align 2, 0
_08006A30: .4byte 0x0000f297
_08006A34:
movs r1, 0x6
ldrsh r0, [r6, r1]
subs r0, 0x1
cmp r5, r0
bne _08006A60
lsls r1, r4, 1
lsls r0, r2, 6
adds r0, r3
adds r1, r0
ldr r2, _08006A58
adds r0, r2, 0
strh r0, [r1]
movs r0, 0x80
lsls r0, 4
adds r1, r0
ldr r2, _08006A5C
b _08006A92
.align 2, 0
_08006A58: .4byte 0x0000fa97
_08006A5C: .4byte 0x0000f2db
_08006A60:
lsls r1, r4, 1
lsls r0, r2, 6
adds r0, r3
adds r1, r0
ldr r2, _08006A78
adds r0, r2, 0
strh r0, [r1]
movs r0, 0x80
lsls r0, 4
adds r1, r0
adds r2, 0x1
b _08006A92
.align 2, 0
_08006A78: .4byte 0x0000f2da
_08006A7C:
lsls r1, r4, 1
lsls r0, r2, 6
adds r0, r3
adds r1, r0
ldr r2, _08006A98
adds r0, r2, 0
strh r0, [r1]
movs r0, 0x80
lsls r0, 4
adds r1, r0
subs r2, 0xF
_08006A92:
adds r0, r2, 0
strh r0, [r1]
b _08006ABA
.align 2, 0
_08006A98: .4byte 0x0000f2ea
_08006A9C:
lsls r0, r4, 1
lsls r1, r2, 6
adds r1, r3
adds r0, r1
ldr r2, _08006AA8
b _08006AB6
.align 2, 0
_08006AA8: .4byte 0x0000f2de
_08006AAC:
lsls r0, r4, 1
lsls r1, r2, 6
adds r1, r3
adds r0, r1
ldr r2, _08006AC0
_08006AB6:
adds r1, r2, 0
strh r1, [r0]
_08006ABA:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08006AC0: .4byte 0x0000f2b6
thumb_func_end sub_80069CC
thumb_func_start sub_8006AC4
sub_8006AC4:
push {r4,r5,lr}

View File

@ -6,14 +6,15 @@
extern const u32 gUnknown_80B8814[];
// text.s
extern void sub_800677C(struct UnkTextStruct1 *, s32, u16 *, u8);
extern void sub_80069CC(struct UnkTextStruct1 *, s32, s32, s32, u16 *);
extern void sub_8006AC4(struct UnkTextStruct1 *, s32, s32, u32, u16 *);
extern void sub_8006B70(struct UnkTextStruct1 *, s32, s32, s32, u16 *);
extern void sub_8006C44(struct UnkTextStruct1 *, s32, u16 *, u8);
extern void sub_8006E94(struct UnkTextStruct1 *, s32, u32, const u8 *, u16 *);
extern void sub_8008C6C(struct UnkTextStruct1 *, u32);
void sub_800677C(struct UnkTextStruct1 *, s32, u16 *, u8);
void sub_80069CC(struct UnkTextStruct1 *, s32, s32, s32, u16 *);
void nullsub_152(void)
{
}
@ -200,4 +201,46 @@ void sub_800677C(struct UnkTextStruct1 *a0, s32 a1, u16 *a2, u8 a3)
(a2 + a1 * 0x20)[iVar5] = 0xF693;
break;
}
}
void sub_80069CC(struct UnkTextStruct1 *a0, s32 a1, s32 a2, s32 a3, u16 *a4)
{
if (a2 > 28)
return;
// Cannot combine these ifs for matching
if (a2 < 0)
return;
switch (a0->unkC) {
case 1:
case 2:
break;
case 0:
if (a3 == 0) {
(a4 + a2 * 0x20)[a1] = 0xF297;
(a4 + a2 * 0x20)[a1 + 0x400] = 0xF2DB;
break;
}
if (a3 == a0->unk6 - 1) {
(a4 + a2 * 0x20)[a1] = 0xFA97;
(a4 + a2 * 0x20)[a1 + 0x400] = 0xF2DB;
break;
}
// Fallthrough
case 3:
case 6:
(a4 + a2 * 0x20)[a1] = 0xF2DA;
(a4 + a2 * 0x20)[a1 + 0x400] = 0xF2DB;
break;
case 4:
(a4 + a2 * 0x20)[a1] = 0xF2EA;
(a4 + a2 * 0x20)[a1 + 0x400] = 0xF2DB;
break;
case 5:
(a4 + a2 * 0x20)[a1] = 0xF2DE;
break;
case 7:
(a4 + a2 * 0x20)[a1] = 0xF2B6;
break;
}
}