diff options
Diffstat (limited to 'src/secret_base.c')
-rw-r--r-- | src/secret_base.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/secret_base.c b/src/secret_base.c index 1f4e257db..a4ec4aeae 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -11,6 +11,8 @@ #include "field_weather.h" #include "fieldmap.h" #include "main.h" +#include "sound.h" +#include "songs.h" #include "map_constants.h" #include "map_name_popup.h" #include "menu.h" @@ -34,6 +36,8 @@ void Task_SecretBasePC_Registry(u8); void sub_80BC7D8(u8); void sub_80BC824(u8); void sub_80BCC54(u8); +u8 sub_80BC948(u8); +void sub_80BC980(u8); const struct { @@ -1238,3 +1242,62 @@ void sub_80BC7D8(u8 taskId) InitMenu(0, 18, 2, data[3] + 1, data[1], 11); sub_80BC6B0(taskId); } + +void sub_80BC824(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (data[1] != 0) + { + PlaySE(SE_SELECT); + data[1] = MoveMenuCursor(-1); + } + else if (data[2] != 0) + { + PlaySE(SE_SELECT); + data[2]--; + sub_80BC6B0(taskId); + } + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if (data[1] == data[3]) + { + if (data[2] + data[1] != data[0]) + { + PlaySE(SE_SELECT); + data[2]++; + sub_80BC6B0(taskId); + } + } + else + { + PlaySE(SE_SELECT); + data[1] = MoveMenuCursor(+1); + } + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (data[1] + data[2] == data[0]) + { + HandleDestroyMenuCursors(); + MenuZeroFillWindowRect(0, 0, 29, 19); + sub_80BCC54(taskId); + } + else + { + HandleDestroyMenuCursors(); + data[4] = sub_80BC948(data[1] + data[2]); + sub_80BC980(taskId); + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + HandleDestroyMenuCursors(); + MenuZeroFillWindowRect(0, 0, 29, 19); + sub_80BCC54(taskId); + } +} |