summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/nakamura_debug_menu.s172
-rw-r--r--include/choose_party.h3
-rw-r--r--src/debug/nakamura_debug_menu.c90
3 files changed, 84 insertions, 181 deletions
diff --git a/asm/nakamura_debug_menu.s b/asm/nakamura_debug_menu.s
index 21092fe4b..f479a209c 100644
--- a/asm/nakamura_debug_menu.s
+++ b/asm/nakamura_debug_menu.s
@@ -5,178 +5,6 @@
.text
- thumb_func_start debug_sub_815F1B8
-debug_sub_815F1B8:
- push {lr}
- add sp, sp, #0xfffffff8
- bl Menu_EraseScreen
- mov r0, #0xe
- mov r1, #0x0
- mov r2, #0x1d
- mov r3, #0x13
- bl Menu_DrawStdWindowFrame
- ldr r3, ._1 @ _843E3DC
- mov r0, #0x10
- mov r1, #0x1
- mov r2, #0x9
- bl Menu_PrintItems
- mov r0, #0x0
- str r0, [sp]
- mov r0, #0xe
- str r0, [sp, #0x4]
- mov r0, #0x0
- mov r1, #0xf
- mov r2, #0x1
- mov r3, #0x9
- bl InitMenu
- add sp, sp, #0x8
- pop {r0}
- bx r0
-._2:
- .align 2, 0
-._1:
- .word _843E3DC
-
- thumb_func_end debug_sub_815F1B8
-
- thumb_func_start InitNakamuraDebugMenu
-InitNakamuraDebugMenu:
- push {lr}
- bl debug_sub_815F1B8
- ldr r1, ._3 @ gMenuCallback
- ldr r0, ._3 + 4 @ debug_sub_815F214
- str r0, [r1]
- mov r0, #0x0
- pop {r1}
- bx r1
-._4:
- .align 2, 0
-._3:
- .word gMenuCallback
- .word debug_sub_815F214+1
-
- thumb_func_end InitNakamuraDebugMenu
-
- thumb_func_start debug_sub_815F214
-debug_sub_815F214:
- push {r4, lr}
- ldr r4, ._9 @ gMain
- ldrh r1, [r4, #0x2e]
- mov r0, #0x40
- and r0, r0, r1
- cmp r0, #0
- beq ._5 @cond_branch
- mov r0, #0x1
- neg r0, r0
- bl Menu_MoveCursor
-._5:
- ldrh r1, [r4, #0x2e]
- mov r0, #0x80
- and r0, r0, r1
- cmp r0, #0
- beq ._6 @cond_branch
- mov r0, #0x1
- bl Menu_MoveCursor
-._6:
- ldrh r1, [r4, #0x2e]
- mov r0, #0x1
- and r0, r0, r1
- cmp r0, #0
- beq ._7 @cond_branch
- ldr r4, ._9 + 4 @ _843E3DC
- bl Menu_GetCursorPos
- lsl r0, r0, #0x18
- lsr r0, r0, #0x15
- add r4, r4, #0x4
- add r0, r0, r4
- ldr r4, [r0]
- bl Menu_DestroyCursor
- bl _call_via_r4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- b ._12
-._10:
- .align 2, 0
-._9:
- .word gMain
- .word _843E3DC
-._7:
- mov r0, #0x2
- and r0, r0, r1
- cmp r0, #0
- bne ._11 @cond_branch
- mov r0, #0x0
- b ._12
-._11:
- bl CloseMenu
- mov r0, #0x1
-._12:
- pop {r4}
- pop {r1}
- bx r1
-
- thumb_func_end debug_sub_815F214
-
- thumb_func_start debug_sub_815F284
-debug_sub_815F284:
- push {r4, lr}
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- ldr r0, ._14 @ gPaletteFade
- ldrb r1, [r0, #0x7]
- mov r0, #0x80
- and r0, r0, r1
- cmp r0, #0
- bne ._13 @cond_branch
- bl debug_sub_81381B4
- mov r0, #0x5
- mov r1, #0x0
- bl OpenPartyMenu
- add r0, r4, #0
- bl DestroyTask
-._13:
- pop {r4}
- pop {r0}
- bx r0
-._15:
- .align 2, 0
-._14:
- .word gPaletteFade
-
- thumb_func_end debug_sub_815F284
-
- thumb_func_start debug_sub_815F2B4
-debug_sub_815F2B4:
- push {lr}
- add sp, sp, #0xfffffffc
- bl CloseMenu
- bl Menu_EraseScreen
- ldr r1, ._16 @ gMain
- ldr r0, ._16 + 4 @ sub_805469C
- str r0, [r1, #0x8]
- ldr r0, ._16 + 8 @ debug_sub_815F284
- mov r1, #0x0
- bl CreateTask
- mov r0, #0x1
- neg r0, r0
- mov r1, #0x0
- str r1, [sp]
- mov r2, #0x0
- mov r3, #0x10
- bl BeginNormalPaletteFade
- mov r0, #0x1
- add sp, sp, #0x4
- pop {r1}
- bx r1
-._17:
- .align 2, 0
-._16:
- .word gMain
- .word sub_805469C+1
- .word debug_sub_815F284+1
-
- thumb_func_end debug_sub_815F2B4
-
thumb_func_start debug_sub_815F2F4
debug_sub_815F2F4:
push {r4, r5, r6, r7, lr}
diff --git a/include/choose_party.h b/include/choose_party.h
index 853202a89..1f7d48f59 100644
--- a/include/choose_party.h
+++ b/include/choose_party.h
@@ -9,5 +9,8 @@ bool8 SetupLinkMultiBattlePartyMenu(void);
void HandleLinkMultiBattlePartyMenu(u8 taskId);
void HandleDaycarePartyMenu(u8 taskId);
void sub_8123138(u8 taskId);
+#if DEBUG
+void debug_sub_81381B4(void);
+#endif
#endif // GUARD_CHOOSE_PARTY_H
diff --git a/src/debug/nakamura_debug_menu.c b/src/debug/nakamura_debug_menu.c
index 550ac7bbd..2045933f7 100644
--- a/src/debug/nakamura_debug_menu.c
+++ b/src/debug/nakamura_debug_menu.c
@@ -1,7 +1,15 @@
#if DEBUG
#include "global.h"
+#include "palette.h"
+#include "main.h"
+#include "overworld.h"
+#include "start_menu.h"
+#include "party_menu.h"
+#include "choose_party.h"
#include "menu.h"
+typedef bool8 (*MenuFunc)(void);
+
EWRAM_DATA u8 _nakamuraData0 = 0;
EWRAM_DATA u8 _nakamuraData1 = 0;
EWRAM_DATA u8 _nakamuraData2 = 0;
@@ -20,15 +28,16 @@ __attribute__((unused)) static u8 gDebugFiller3000814[4];
asm(".global _nakamuraStatic0");
asm(".global _nakamuraStatic18");
-u8 debug_sub_815FC54();
-u8 debug_sub_815F2B4();
-u8 debug_sub_815FC94();
-u8 debug_sub_815FB1C();
-u8 debug_sub_815F2F4();
-u8 debug_sub_815F62C();
-u8 debug_sub_815FBE8();
-u8 debug_sub_815FE1C();
-u8 debug_sub_8160D98();
+bool8 debug_sub_815F214(void);
+bool8 debug_sub_815FC54(void);
+bool8 debug_sub_815F2B4(void);
+bool8 debug_sub_815FC94(void);
+bool8 debug_sub_815FB1C(void);
+bool8 debug_sub_815F2F4(void);
+bool8 debug_sub_815F62C(void);
+bool8 debug_sub_815FBE8(void);
+bool8 debug_sub_815FE1C(void);
+bool8 debug_sub_8160D98(void);
const u8 Str_843E36C[] = _("Berries");
const u8 Str_843E374[] = _("Goods");
@@ -186,4 +195,67 @@ const u8 Str_843E655[] = _("かい");
const u8 Str_843E658[] = _("0");
const u8 Str_843E65A[] = _("はんい");
+void debug_sub_815F1B8(void)
+{
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(14, 0, 29, 19);
+ Menu_PrintItems(16, 1, ARRAY_COUNT(_843E3DC), _843E3DC);
+ InitMenu(0, 15, 1, ARRAY_COUNT(_843E3DC), 0, 14);
+}
+
+bool8 InitNakamuraDebugMenu(void)
+{
+ debug_sub_815F1B8();
+ gMenuCallback = debug_sub_815F214;
+ return FALSE;
+}
+
+bool8 debug_sub_815F214(void)
+{
+ if (gMain.newKeys & DPAD_UP)
+ {
+ Menu_MoveCursor(-1);
+ }
+
+ if (gMain.newKeys & DPAD_DOWN)
+ {
+ Menu_MoveCursor(+1);
+ }
+
+ if (gMain.newKeys & A_BUTTON)
+ {
+ MenuFunc func = _843E3DC[Menu_GetCursorPos()].func;
+ Menu_DestroyCursor();
+ return func();
+ }
+
+ if (gMain.newKeys & B_BUTTON)
+ {
+ CloseMenu();
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void debug_sub_815F284(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ debug_sub_81381B4();
+ OpenPartyMenu(5, 0);
+ DestroyTask(taskId);
+ }
+}
+
+bool8 debug_sub_815F2B4(void)
+{
+ CloseMenu();
+ Menu_EraseScreen();
+ gMain.savedCallback = sub_805469C;
+ CreateTask(debug_sub_815F284, 0);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ return TRUE;
+}
+
#endif // DEBUG