From 9c9dd6d9ddd126b5077b5a3eb3c36dcd9148d22a Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Tue, 5 Apr 2022 23:23:57 +0300 Subject: [PATCH] Match sub_080A6E70 --- asm/non_matching/subtask2/sub_080A6E70.inc | 110 --------------------- src/subtask2.c | 35 ++++++- 2 files changed, 33 insertions(+), 112 deletions(-) delete mode 100644 asm/non_matching/subtask2/sub_080A6E70.inc diff --git a/asm/non_matching/subtask2/sub_080A6E70.inc b/asm/non_matching/subtask2/sub_080A6E70.inc deleted file mode 100644 index 707c8fe8..00000000 --- a/asm/non_matching/subtask2/sub_080A6E70.inc +++ /dev/null @@ -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 diff --git a/src/subtask2.c b/src/subtask2.c index 73c12460..0fd102bc 100644 --- a/src/subtask2.c +++ b/src/subtask2.c @@ -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[];