From 4250eee61002225ee1fa6a3f8bd91e78fb423384 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Wed, 6 Apr 2022 18:45:36 +0300 Subject: [PATCH] Match sub_080A6CD8 --- asm/non_matching/subtask2/sub_080A6CD8.inc | 82 ---------------------- src/subtask2.c | 41 ++++++++++- 2 files changed, 40 insertions(+), 83 deletions(-) delete mode 100644 asm/non_matching/subtask2/sub_080A6CD8.inc diff --git a/asm/non_matching/subtask2/sub_080A6CD8.inc b/asm/non_matching/subtask2/sub_080A6CD8.inc deleted file mode 100644 index 305a151e..00000000 --- a/asm/non_matching/subtask2/sub_080A6CD8.inc +++ /dev/null @@ -1,82 +0,0 @@ - .syntax unified - push {r4, lr} - ldr r0, _080A6D08 @ =gFadeControl - ldrb r0, [r0] - cmp r0, #0 - bne _080A6D6E - ldr r1, _080A6D0C @ =gMenu - movs r0, #1 - strb r0, [r1] - movs r4, #0 - ldr r0, _080A6D10 @ =gInput - ldrh r0, [r0, #2] - adds r2, r1, #0 - cmp r0, #0x10 - beq _080A6D34 - cmp r0, #0x10 - bgt _080A6D1A - cmp r0, #2 - beq _080A6D4C - cmp r0, #2 - bgt _080A6D14 - cmp r0, #1 - beq _080A6D38 - b _080A6D54 - .align 2, 0 -_080A6D08: .4byte gFadeControl -_080A6D0C: .4byte gMenu -_080A6D10: .4byte gInput -_080A6D14: - cmp r0, #8 - beq _080A6D38 - b _080A6D54 -_080A6D1A: - cmp r0, #0x40 - beq _080A6D2E - cmp r0, #0x40 - bgt _080A6D28 - cmp r0, #0x20 - beq _080A6D2E - b _080A6D54 -_080A6D28: - cmp r0, #0x80 - beq _080A6D34 - b _080A6D54 -_080A6D2E: - movs r4, #1 - rsbs r4, r4, #0 - b _080A6D58 -_080A6D34: - movs r4, #1 - b _080A6D58 -_080A6D38: - movs r0, #2 - strb r0, [r2] - bl SetMenuType - ldr r0, _080A6D48 @ =0x00000704 - bl MessageFromTarget - b _080A6D54 - .align 2, 0 -_080A6D48: .4byte 0x00000704 -_080A6D4C: - movs r0, #3 - strb r0, [r1] - bl SetMenuType -_080A6D54: - cmp r4, #0 - beq _080A6D6E -_080A6D58: - adds r0, r4, #0 - bl sub_080A6D74 - ldr r1, _080A6D70 @ =gMenu - ldrb r2, [r1, #3] - cmp r0, r2 - beq _080A6D6E - strb r0, [r1, #3] - movs r0, #0x69 - bl SoundReq -_080A6D6E: - pop {r4, pc} - .align 2, 0 -_080A6D70: .4byte gMenu - .syntax divided diff --git a/src/subtask2.c b/src/subtask2.c index dac1767d..bffe370b 100644 --- a/src/subtask2.c +++ b/src/subtask2.c @@ -674,7 +674,46 @@ void sub_080A6CA8(void) { SetFade(4, 8); } -ASM_FUNC("asm/non_matching/subtask2/sub_080A6CD8.inc", void sub_080A6CD8()) +void sub_080A6CD8(void) { + u32 uVar1; + u32 uVar2; + + if (gFadeControl.active) { + return; + } + + gMenu.field_0x0 = 1; + uVar2 = 0; + + switch (gInput.newKeys) { + case DPAD_LEFT: + case DPAD_UP: + uVar2 = -1; + break; + case DPAD_RIGHT: + case DPAD_DOWN: + uVar2 = 1; + break; + case A_BUTTON: + case START_BUTTON: + gMenu.field_0x0 = 2; + SetMenuType(2); + MessageFromTarget(0x704); + break; + case B_BUTTON: + gMenu.field_0x0 = 3; + SetMenuType(3); + break; + } + + if (uVar2) { + uVar1 = sub_080A6D74(uVar2); + if (uVar1 != gMenu.field_0x3) { + gMenu.field_0x3 = uVar1; + SoundReq(SFX_TEXTBOX_CHOICE); + } + } +} u32 sub_080A6D74(u32 param_1) { u32 uVar1;