diff options
-rw-r--r-- | asm/clear_save_data_menu.s | 55 | ||||
-rw-r--r-- | src/clear_save_data_menu.c | 30 |
2 files changed, 30 insertions, 55 deletions
diff --git a/asm/clear_save_data_menu.s b/asm/clear_save_data_menu.s index e3250cdb2..22460043c 100644 --- a/asm/clear_save_data_menu.s +++ b/asm/clear_save_data_menu.s @@ -6,61 +6,6 @@ .text - thumb_func_start sub_81488BC -sub_81488BC: @ 81488BC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _081488E2 - cmp r1, 0 - bgt _081488DC - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0814890C - b _0814891E -_081488DC: - cmp r1, 0x1 - beq _0814890C - b _0814891E -_081488E2: - movs r0, 0x5 - bl PlaySE - ldr r0, _08148900 @ =gSystemText_ClearingData - bl sub_8071F40 - ldr r1, _08148904 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08148908 @ =sub_8148930 - str r1, [r0] - b _0814891E - .align 2, 0 -_08148900: .4byte gSystemText_ClearingData -_08148904: .4byte gTasks -_08148908: .4byte sub_8148930 -_0814890C: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl DestroyTask - ldr r0, _0814892C @ =sub_8148B34 - bl SetMainCallback2 -_0814891E: - bl AnimateSprites - bl BuildOamBuffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814892C: .4byte sub_8148B34 - thumb_func_end sub_81488BC - thumb_func_start sub_8148930 sub_8148930: @ 8148930 push {r4,lr} diff --git a/src/clear_save_data_menu.c b/src/clear_save_data_menu.c index 1594f6f39..c3879339d 100644 --- a/src/clear_save_data_menu.c +++ b/src/clear_save_data_menu.c @@ -1,13 +1,23 @@ #include "global.h" #include "task.h" +#include "songs.h" +#include "menu.h" +#include "main.h" +#include "sprite.h" +#include "palette.h" +#include "sound.h" extern bool8 sub_8148970(void); extern void sub_8148830(u8); extern void sub_81488BC(u8); extern u8 gSystemText_ClearAllSaveDataPrompt[]; +extern u8 gSystemText_ClearingData[]; extern u8 *gUnknown_08376D74[][2]; +void sub_8148930(u8); +void sub_8148B34(void); + void c2_clear_save_data_screen_2(void) { if (sub_8148970()) @@ -39,3 +49,23 @@ void sub_8148830(u8 taskId) gTasks[taskId].func = sub_81488BC; } + +void sub_81488BC(u8 taskId) +{ + switch (ProcessMenuInputNoWrap_()) + { + case 0: + PlaySE(SE_SELECT); + sub_8071F40(gSystemText_ClearingData); + gTasks[taskId].func = sub_8148930; + break; + case -1: + case 1: + PlaySE(SE_SELECT); + DestroyTask(taskId); + SetMainCallback2(sub_8148B34); + break; + } + AnimateSprites(); + BuildOamBuffer(); +} |