Match sub_080A6E70

This commit is contained in:
Tal Hayon 2022-04-05 23:23:57 +03:00
parent 4cf2d4fe0e
commit 9c9dd6d9dd
2 changed files with 33 additions and 112 deletions

View File

@ -1,110 +0,0 @@
.syntax unified
.ifdef EU
push {r4, r5, lr}
ldr r1, _080A66CC @ =gOamCmd
movs r0, #0
strh r0, [r1, #4]
strh r0, [r1, #6]
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r1, #8]
ldr r1, _080A66D0 @ =gMenu
adds r4, r1, #0
adds r4, #0x2c
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
ldrb r0, [r1, #3]
bl sub_080A6EE0
ldrb r1, [r4]
movs r0, #0x10
ands r0, r1
movs r1, #0x5e
cmp r0, #0
beq _080A6698
movs r1, #0x5d
_080A6698:
movs r0, #0xfd
lsls r0, r0, #1
bl DrawDirect
movs r4, #0
ldr r5, _080A66D4 @ =gSave
_080A66A4EU:
adds r0, r4, #0
adds r0, #0x18
movs r1, #1
lsls r1, r0
ldr r0, [r5, #0x40]
ands r0, r1
cmp r0, #0
beq _080A66C4
adds r0, r4, #0
bl sub_080A6EE0
movs r0, #0xfd
lsls r0, r0, #1
movs r1, #0x5c
bl DrawDirect
_080A66C4:
adds r4, #1
cmp r4, #7
bls _080A66A4EU
pop {r4, r5, pc}
.align 2, 0
_080A66CC: .4byte gOamCmd
_080A66D0: .4byte gMenu
_080A66D4: .4byte gSave
.else
push {r4, r5, lr}
ldr r1, _080A6ED0 @ =gOamCmd
movs r0, #0
strh r0, [r1, #4]
strh r0, [r1, #6]
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r1, #8]
ldr r1, _080A6ED4 @ =gMenu
adds r4, r1, #0
adds r4, #0x2c
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
ldrb r0, [r1, #3]
bl sub_080A6EE0
ldrb r1, [r4]
movs r0, #0x10
ands r0, r1
movs r1, #0x5e
cmp r0, #0
beq _080A6EA0
movs r1, #0x5d
_080A6EA0:
ldr r0, _080A6ED8 @ =0x000001FB
bl DrawDirect
movs r4, #0
ldr r5, _080A6EDC @ =gSave
_080A6EAA:
adds r0, r4, #0
adds r0, #0x18
movs r1, #1
lsls r1, r0
ldr r0, [r5, #0x40]
ands r0, r1
cmp r0, #0
beq _080A6EC8
adds r0, r4, #0
bl sub_080A6EE0
ldr r0, _080A6ED8 @ =0x000001FB
movs r1, #0x5c
bl DrawDirect
_080A6EC8:
adds r4, #1
cmp r4, #7
bls _080A6EAA
pop {r4, r5, pc}
.align 2, 0
_080A6ED0: .4byte gOamCmd
_080A6ED4: .4byte gMenu
_080A6ED8: .4byte 0x000001FB
_080A6EDC: .4byte gSave
.endif
.syntax divided

View File

@ -26,6 +26,7 @@ u32 sub_080A6F40();
void sub_080A67C4(u32);
void sub_080A68D4();
u32 sub_080A69E0();
void sub_080A6EE0(u32 param_1);
extern void DrawDungeonMap(u32 floor, struct_02019EE0* data, u32 size);
extern void LoadDungeonMap(void);
@ -713,9 +714,39 @@ void sub_080A6E44(void) {
}
}
ASM_FUNC("asm/non_matching/subtask2/sub_080A6E70.inc", void sub_080A6E70())
void sub_080A6E70(void) {
u32 uVar1;
u32 i;
ASM_FUNC("asm/non_matching/subtask2/sub_080A6EE0.inc", void sub_080A6EE0())
gOamCmd._4 = 0;
gOamCmd._6 = 0;
gOamCmd._8 = 0x400;
gGenericMenu.unk2c++;
sub_080A6EE0(gMenu.field_0x3);
if ((gGenericMenu.unk2c & 0x10) != 0) {
uVar1 = 0x5d;
} else {
uVar1 = 0x5e;
}
#ifdef EU
DrawDirect(0x1fa, uVar1);
#else
DrawDirect(0x1fb, uVar1);
#endif
for (i = 0; i < 8; i++) {
if ((gSave.windcrests & (1 << (i + 0x18))) != 0) {
sub_080A6EE0(i);
#ifdef EU
DrawDirect(0x1fa, 0x5c);
#else
DrawDirect(0x1fb, 0x5c);
#endif
}
}
}
ASM_FUNC("asm/non_matching/subtask2/sub_080A6EE0.inc", void sub_080A6EE0(u32 param_1))
u32 sub_080A6F40(void) {
extern u8 gUnk_08128F38[];