diff --git a/asm/secret_base.s b/asm/secret_base.s index e4b0e11ccc..88ffb813f1 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -5,88 +5,6 @@ .text - thumb_func_start sub_80E9DEC -sub_80E9DEC: @ 80E9DEC - push {lr} - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _080E9DFC - movs r0, 0x5 - bl PlaySE -_080E9DFC: - pop {r0} - bx r0 - thumb_func_end sub_80E9DEC - - thumb_func_start sub_80E9E00 -sub_80E9E00: @ 80E9E00 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - ldrb r0, [r4, 0xC] - movs r1, 0 - bl SetStandardWindowBorderStyle - ldr r0, =gUnknown_03006310 - ldrh r1, [r4, 0x4] - ldrh r2, [r4, 0x2] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - adds r0, r5, 0 - bl sub_80E9E44 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E9E00 - - thumb_func_start sub_80E9E44 -sub_80E9E44: @ 80E9E44 - push {r4,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, =gTasks + 0x8 - adds r4, r0 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x6 - ldrsh r1, [r4, r2] - subs r0, r1 - str r0, [sp] - ldr r0, =0x000013f8 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r0, r4, 0x4 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xBC - movs r2, 0xC - movs r3, 0x94 - bl AddScrollIndicatorArrowPairParametrized - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x10] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E9E44 - thumb_func_start sub_80E9E90 sub_80E9E90: @ 80E9E90 push {r4-r6,lr} diff --git a/include/menu_indicators.h b/include/menu_indicators.h index 5a3b2e5b82..d0baac810d 100644 --- a/include/menu_indicators.h +++ b/include/menu_indicators.h @@ -6,7 +6,7 @@ // Exported RAM declarations // Exported ROM declarations -u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u8, u8, u16 *); +u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u16, u16, u16 *); void RemoveScrollIndicatorArrowPair(u8); #endif //GUARD_MENU_INDICATORS_H diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index f588967bf2..42b8c60b1d 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -11,6 +11,7 @@ void sub_81973FC(u8, u8); u16 AddTextPrinterParametrized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor); void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback); void sub_8197434(u8 a0, u8 a1); +void SetStandardWindowBorderStyle(u8 a0, u8 a1); void sub_8197930(void); #endif // GUARD_NEW_MENU_HELPERS_H diff --git a/src/secret_base.c b/src/secret_base.c index eccc7b8990..73bc78826b 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -6,11 +6,12 @@ #include "palette.h" #include "list_menu.h" #include "window.h" +#include "menu.h" #include "new_menu_helpers.h" +#include "menu_indicators.h" #include "map_constants.h" -#include "species.h" -#include "moves.h" -#include "items.h" +#include "songs.h" +#include "sound.h" #include "overworld.h" #include "fieldmap.h" #include "field_camera.h" @@ -47,6 +48,7 @@ EWRAM_DATA struct SecretBaseListMenuBuffer *gUnknown_0203A020 = NULL; void sub_80E9C9C(u8 taskId); void game_continue(u8 taskId); void sub_80E9E00(u8 taskId); +void sub_80E9E44(u8 taskId); void sub_80E9E90(u8 taskId); void task_pc_turn_off(u8 taskId); u8 sub_80EA20C(u8 sbId); @@ -1023,3 +1025,30 @@ void game_continue(u8 taskId) gUnknown_03006310.unk_00 = gUnknown_0203A020->items; gUnknown_03006310.unk_0e = data[3]; } + +void sub_80E9DEC(u32 unused, bool8 flag) +{ + if (flag != TRUE) + { + PlaySE(SE_SELECT); + } +} + +void sub_80E9E00(u8 taskId) +{ + s16 *data; + + data = gTasks[taskId].data; + SetStandardWindowBorderStyle(data[6], 0); + data[5] = ListMenuInit(&gUnknown_03006310, data[2], data[1]); + sub_80E9E44(taskId); + schedule_bg_copy_tilemap_to_vram(0); +} + +void sub_80E9E44(u8 taskId) +{ + s16 *data; + + data = gTasks[taskId].data; + data[8] = AddScrollIndicatorArrowPairParametrized(0x02, 0xbc, 0x0c, 0x94, data[0] - data[3], 0x13f8, 0x13f8, &data[2]); +}