summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/secret_base.s74
-rw-r--r--src/secret_base.c38
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);
+ }
+}