Match sub_080A6FB4

This commit is contained in:
Tal Hayon 2022-04-06 17:13:24 +03:00
parent efbd375eb4
commit 1cf9d9cd6b
2 changed files with 32 additions and 70 deletions

View File

@ -1,69 +0,0 @@
.syntax unified
push {r4, r5, lr}
adds r2, r0, #0
movs r4, #0
cmp r1, #1
beq _080A6FF0
cmp r1, #1
blo _080A6FC8
cmp r1, #2
beq _080A6FD6
b _080A6FFA
_080A6FC8:
ldr r0, _080A6FE4 @ =gSave
movs r1, #1
lsls r1, r2
ldr r0, [r0, #0x40]
ands r0, r1
cmp r0, #0
beq _080A6FFA
_080A6FD6:
ldr r1, _080A6FE8 @ =gUnk_08127F94
lsls r0, r2, #3
adds r0, r0, r1
ldrh r4, [r0, #6]
ldr r5, _080A6FEC @ =gUnk_08128FC0
b _080A6FFA
.align 2, 0
_080A6FE4: .4byte gSave
_080A6FE8: .4byte gUnk_08127F94
_080A6FEC: .4byte gUnk_08128FC0
_080A6FF0:
ldr r1, _080A702C @ =gUnk_08128FF0
lsls r0, r2, #1
adds r0, r0, r1
ldrh r4, [r0]
ldr r5, _080A7030 @ =gUnk_08128FD8
_080A6FFA:
ldr r1, _080A7034 @ =gMenu
ldrh r0, [r1, #0x2e]
cmp r0, r4
beq _080A7024
strh r4, [r1, #0x2e]
ldr r0, _080A7038 @ =gUnk_020350F0
movs r1, #0x80
lsls r1, r1, #1
bl MemClear
movs r0, #0xff
ands r0, r4
cmp r0, #0
beq _080A701E
adds r0, r4, #0
adds r1, r5, #0
bl sub_0805F46C
_080A701E:
ldr r1, _080A703C @ =gScreen
movs r0, #1
strh r0, [r1, #0xe]
_080A7024:
ldr r1, _080A703C @ =gScreen
movs r0, #2
strh r0, [r1, #0xc]
pop {r4, r5, pc}
.align 2, 0
_080A702C: .4byte gUnk_08128FF0
_080A7030: .4byte gUnk_08128FD8
_080A7034: .4byte gMenu
_080A7038: .4byte gUnk_020350F0
_080A703C: .4byte gScreen
.syntax divided

View File

@ -808,7 +808,38 @@ void sub_080A6F6C(u32 param_1) {
gScreen.bg0.yOffset = 2; gScreen.bg0.yOffset = 2;
} }
ASM_FUNC("asm/non_matching/subtask2/sub_080A6FB4.inc", void sub_080A6FB4(u32 a, u32 b)) void sub_080A6FB4(u32 param_1, u32 param_2) {
extern u16 gUnk_08128FF0[];
extern Font gUnk_08128FD8;
extern Font gUnk_08128FC0;
u32 uVar1;
Font* font;
uVar1 = 0;
switch (param_2) {
case 0:
if ((gSave.windcrests & (1 << param_1)) == 0)
break;
case 2:
uVar1 = gUnk_08127F94[param_1]._6;
font = &gUnk_08128FC0;
break;
case 1:
uVar1 = gUnk_08128FF0[param_1];
font = &gUnk_08128FD8;
break;
}
if (gGenericMenu.unk2e.HWORD != uVar1) {
gGenericMenu.unk2e.HWORD = uVar1;
MemClear(&gUnk_020350F0, 0x100);
if ((uVar1 & 0xff) != 0) {
sub_0805F46C(uVar1, font);
}
gScreen.bg0.updated = 1;
}
gScreen.bg0.yOffset = 2;
}
void sub_080A7040(u32 param_1) { void sub_080A7040(u32 param_1) {
extern Font gUnk_08129004; extern Font gUnk_08129004;