From 5db4564087109ad55c8cd85fee330d96a2ef43b4 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Wed, 6 Apr 2022 11:03:45 +0300 Subject: [PATCH] Match sub_080A70AC --- asm/non_matching/subtask2/sub_080A70AC.inc | 53 ---------------------- src/subtask2.c | 20 +++++++- 2 files changed, 19 insertions(+), 54 deletions(-) delete mode 100644 asm/non_matching/subtask2/sub_080A70AC.inc diff --git a/asm/non_matching/subtask2/sub_080A70AC.inc b/asm/non_matching/subtask2/sub_080A70AC.inc deleted file mode 100644 index afcd15bf..00000000 --- a/asm/non_matching/subtask2/sub_080A70AC.inc +++ /dev/null @@ -1,53 +0,0 @@ - .syntax unified - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A7110 @ =gUnk_0200AF34 - movs r1, #0xc0 - lsls r1, r1, #2 - adds r0, r4, #0 - bl MemClear - adds r2, r4, #0 - subs r2, #0x34 - movs r0, #0x7f - strb r0, [r2, #0x13] - strb r0, [r2, #0x14] - ldrb r0, [r5] - strh r0, [r2, #0x16] - movs r0, #1 - ldrsb r0, [r5, r0] - strh r0, [r2, #0x1c] - ldrb r1, [r5, #2] - subs r0, r4, #4 - strb r1, [r0] - ldrb r0, [r5, #3] - strh r0, [r2, #0x18] - movs r0, #4 - ldrsb r0, [r5, r0] - strh r0, [r2, #0x1e] - ldrb r1, [r5, #5] - subs r0, r4, #3 - strb r1, [r0] - ldrb r0, [r5, #6] - strh r0, [r2, #0x1a] - movs r0, #7 - ldrsb r0, [r5, r0] - strh r0, [r2, #0x20] - ldrb r0, [r5, #8] - subs r4, #2 - strb r0, [r4] - adds r5, #9 - movs r4, #1 - rsbs r4, r4, #0 -_080A70FC: - ldrb r0, [r5] - ldrb r1, [r5, #1] - bl CreateUIElement - adds r5, #2 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, r4 - bne _080A70FC - pop {r4, r5, pc} - .align 2, 0 -_080A7110: .4byte gUnk_0200AF34 - .syntax divided diff --git a/src/subtask2.c b/src/subtask2.c index 799fe6ed..e21f5720 100644 --- a/src/subtask2.c +++ b/src/subtask2.c @@ -803,7 +803,25 @@ void sub_080A7040(u32 param_1) { } } -ASM_FUNC("asm/non_matching/subtask2/sub_080A70AC.inc", void sub_080A70AC(const KeyButtonLayout* layout)) +void sub_080A70AC(const KeyButtonLayout* layout) { + MemClear(&gUnk_0200AF00.elements, 0x300); + gUnk_0200AF00.unk_13 = 0x7f; + gUnk_0200AF00.unk_14 = 0x7f; + gUnk_0200AF00.buttonX[0] = layout->aButtonX; + gUnk_0200AF00.buttonY[0] = (s8)layout->aButtonY; + gUnk_0200AF00.unk_30[0] = layout->aButtonText; + gUnk_0200AF00.buttonX[1] = layout->bButtonX; + gUnk_0200AF00.buttonY[1] = (s8)layout->bButtonY; + gUnk_0200AF00.unk_30[1] = layout->bButtonText; + gUnk_0200AF00.buttonX[2] = layout->rButtonX; + gUnk_0200AF00.buttonY[2] = (s8)layout->rButtonY; + gUnk_0200AF00.unk_32 = layout->rButtonText; + layout++; + do { + CreateUIElement(layout->aButtonX, layout->aButtonY); + layout = (KeyButtonLayout*)&layout->aButtonText; + } while ((s8)layout->aButtonX != -1); +} void SetMenuType(u32 menuType) { gMenu.menuType = menuType;