summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/clear_save_data_menu.s55
-rw-r--r--src/clear_save_data_menu.c30
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();
+}