diff options
-rw-r--r-- | asm/secret_base.s | 74 | ||||
-rw-r--r-- | src/secret_base.c | 38 |
2 files changed, 34 insertions, 78 deletions
diff --git a/asm/secret_base.s b/asm/secret_base.s index 8d1671508..7bc4e28ec 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -6,80 +6,6 @@ .section .text_80BC1D0 - thumb_func_start sub_80BC9E4 -sub_80BC9E4: @ 80BC9E4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - ldr r2, _080BCA14 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080BCA18 - bl GetMenuCursorPos - lsls r0, 24 - cmp r0, 0 - beq _080BCA7C - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _080BCA7C - .align 2, 0 -_080BCA14: .4byte gMain -_080BCA18: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080BCA3A - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080BCA7C - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _080BCA7C -_080BCA3A: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080BCA68 - movs r0, 0x5 - bl PlaySE - ldr r4, _080BCA64 @ =gUnknown_083D13D4 - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 21 - adds r4, 0x4 - adds r0, r4 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - b _080BCA7C - .align 2, 0 -_080BCA64: .4byte gUnknown_083D13D4 -_080BCA68: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080BCA7C - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80BCBF8 -_080BCA7C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80BC9E4 - thumb_func_start sub_80BCA84 sub_80BCA84: @ 80BCA84 push {r4,r5,lr} diff --git a/src/secret_base.c b/src/secret_base.c index ecc230425..bcf7371f4 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -28,8 +28,8 @@ #include "text.h" #include "vars.h" -u8 sub_80BCA84(); -u8 sub_80BCBF8(); +void sub_80BCA84(u8); +void sub_80BCBF8(u8); void sub_80BCB90(u8); void sub_80BCBC0(u8); @@ -108,7 +108,7 @@ const u8 gUnknown_083D1374[] = { MAP_ID_SECRET_BASE_YELLOW_CAVE2, 6 }; -const struct MenuAction gUnknown_083D13D4[] = { +const struct MenuAction2 gUnknown_083D13D4[] = { {SecretBaseText_DelRegist, sub_80BCA84}, {gUnknownText_Exit, sub_80BCBF8} }; @@ -1325,7 +1325,37 @@ void sub_80BC980(u8 taskId) PauseVerticalScrollIndicator(0); PauseVerticalScrollIndicator(1); MenuDrawTextWindow(1, 0, 12, 5); - PrintMenuItems(2, 1, 2, gUnknown_083D13D4); + PrintMenuItems(2, 1, 2, (const struct MenuAction *)gUnknown_083D13D4); InitMenu(0, 2, 1, 2, 0, 10); gTasks[taskId].func = sub_80BC9E4; } + +void sub_80BC9E4(u8 taskId) +{ + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (GetMenuCursorPos() != 0) + { + PlaySE(SE_SELECT); + MoveMenuCursor(-1); + } + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if (GetMenuCursorPos() != 1) + { + PlaySE(SE_SELECT); + MoveMenuCursor(+1); + } + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + gUnknown_083D13D4[GetMenuCursorPos()].func(taskId); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_80BCBF8(taskId); + } +} |