summaryrefslogtreecommitdiff
path: root/src/engine/reset_rtc_screen.c
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-02-07 00:40:22 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-02-07 00:40:22 -0500
commitdcd35c895cb1c5680f92360cb084e6924ed3b76f (patch)
treee3b12bfd9f67e1237832602f03fe5bfd7380ab0b /src/engine/reset_rtc_screen.c
parenteff6795887cc27f2c5139df9a6da70f4f02338b4 (diff)
parentc79d259508d47a8b5bde5b9060b8fe8c6989bd44 (diff)
Merge branch 'master' into unk_text_8095904
Diffstat (limited to 'src/engine/reset_rtc_screen.c')
-rw-r--r--src/engine/reset_rtc_screen.c377
1 files changed, 341 insertions, 36 deletions
diff --git a/src/engine/reset_rtc_screen.c b/src/engine/reset_rtc_screen.c
index 67e146899..8b67f39a5 100644
--- a/src/engine/reset_rtc_screen.c
+++ b/src/engine/reset_rtc_screen.c
@@ -13,7 +13,7 @@
#include "strings2.h"
#include "task.h"
#include "text.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
struct ResetRtcStruct
{
@@ -147,6 +147,13 @@ const struct SpriteTemplate gSpriteTemplate_83764E8 =
const u8 gUnknown_08376500[] = _(" : ");
+#if DEBUG
+const u8 gUnknown_Debug_0839AE94[] = _("にっすう");
+const u8 gUnknown_Debug_0839AE99[] = _("じかん");
+const u8 gUnknown_Debug_0839AE9D[] = _("ゲームない じかん");
+const u8 gUnknown_Debug_0839AEA7[] = _("RTC じかん");
+#endif
+
void SpriteCB_ResetRtcCusor0(struct Sprite *sprite)
{
int state = gTasks[sprite->data[0]].data[2];
@@ -267,7 +274,7 @@ void ResetRtcScreen_FreeCursorPalette(void)
void ResetRtcScreen_HideChooseTimeWindow(void)
{
- MenuZeroFillWindowRect(3, 8, 25, 11);
+ Menu_EraseWindowRect(3, 8, 25, 11);
}
void ResetRtcScreen_PrintTime(u8 x, u8 y, u16 days, u8 hours, u8 minutes, u8 seconds)
@@ -286,13 +293,13 @@ void ResetRtcScreen_PrintTime(u8 x, u8 y, u16 days, u8 hours, u8 minutes, u8 sec
dest = ConvertIntToDecimalStringN(dest, minutes, STR_CONV_MODE_LEADING_ZEROS, 2);
dest = StringCopy(dest, gUnknown_08376500);
ConvertIntToDecimalStringN(dest, seconds, STR_CONV_MODE_LEADING_ZEROS, 2);
- MenuPrint(gStringVar4, x, y);
+ Menu_PrintText(gStringVar4, x, y);
}
void ResetRtcScreen_ShowChooseTimeWindow(u16 days, u8 hours, u8 minutes, u8 seconds)
{
- MenuDrawTextWindow(3, 8, 25, 11);
- MenuPrint(gOtherText_OK, 20, 9);
+ Menu_DrawStdWindowFrame(3, 8, 25, 11);
+ Menu_PrintText(gOtherText_OK, 20, 9);
ResetRtcScreen_PrintTime(4, 9, days, hours, minutes, seconds);
}
@@ -414,37 +421,19 @@ void Task_ResetRtc_0(u8 taskId)
void CB2_InitResetRtcScreen(void)
{
- u8 *addr;
- u32 size;
-
REG_DISPCNT = 0;
SetVBlankCallback(NULL);
-
DmaClear16(3, PLTT, PLTT_SIZE);
-
- addr = (u8 *)VRAM;
- size = 0x18000;
- while (1)
- {
- DmaFill16(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill16(3, 0, addr, size);
- break;
- }
- }
-
+ DmaFill16Large(3, 0, (u8 *)VRAM, 0x18000, 0x1000);
ResetOamRange(0, 128);
LoadOam();
- remove_some_task();
- dp12_8087EA4();
+ ScanlineEffect_Stop();
+ ScanlineEffect_Clear();
ResetSpriteData();
ResetTasks();
ResetPaletteFade();
- SetUpWindowConfig(&gWindowConfig_81E6CE4);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
REG_DISPCNT = 4352;
SetVBlankCallback(VBlankCB_ResetRtcScreen);
SetMainCallback2(CB2_ResetRtcScreen);
@@ -468,8 +457,8 @@ void VBlankCB_ResetRtcScreen(void)
void ResetRtcScreen_ShowMessage(const u8 *str)
{
- MenuDisplayMessageBox();
- MenuPrint(str, 2, 15);
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(str, 2, 15);
}
void Task_ShowResetRtcPrompt(u8 taskId)
@@ -479,9 +468,9 @@ void Task_ShowResetRtcPrompt(u8 taskId)
switch (data[0])
{
case 0:
- MenuZeroFillScreen();
- MenuDrawTextWindow(0, 0, 20, 10);
- MenuPrint(gSystemText_PresentTime, 1, 1);
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 0, 20, 10);
+ Menu_PrintText(gSystemText_PresentTime, 1, 1);
ResetRtcScreen_PrintTime(
1,
3,
@@ -489,7 +478,7 @@ void Task_ShowResetRtcPrompt(u8 taskId)
gLocalTime.hours,
gLocalTime.minutes,
gLocalTime.seconds);
- MenuPrint(gSystemText_PreviousTime, 1, 5);
+ Menu_PrintText(gSystemText_PreviousTime, 1, 5);
ResetRtcScreen_PrintTime(
1,
7,
@@ -543,7 +532,7 @@ void Task_ResetRtcScreen(u8 taskId)
case 2:
if (gTasks[data[1]].isActive != TRUE)
{
- MenuZeroFillScreen();
+ Menu_EraseScreen();
ResetRtcScreen_ShowMessage(gSystemText_PleaseResetTime);
gLocalTime = gSaveBlock2.lastBerryTreeUpdate;
data[1] = CreateTask(Task_ResetRtc_0, 80);
@@ -576,7 +565,7 @@ void Task_ResetRtcScreen(u8 taskId)
}
break;
case 4:
- if (TrySavingData(0) == TRUE)
+ if (Save_WriteData(0) == SAVE_STATUS_OK)
{
ResetRtcScreen_ShowMessage(gSystemText_SaveCompleted);
PlaySE(SE_PINPON);
@@ -605,3 +594,319 @@ void Task_ResetRtcScreen(u8 taskId)
}
}
}
+
+#if DEBUG
+
+__attribute__((naked))
+void debug_sub_806F8F8(void)
+{
+ asm("\
+ push {lr}\n\
+ ldr r0, ._131 @ CB2_InitResetRtcScreen\n\
+ bl SetMainCallback2\n\
+ pop {r0}\n\
+ bx r0\n\
+._132:\n\
+ .align 2, 0\n\
+._131:\n\
+ .word CB2_InitResetRtcScreen+1");
+}
+
+__attribute__((naked))
+void debug_sub_806F908(u8 a)
+{
+ asm("\
+ push {r4, r5, lr}\n\
+ lsl r0, r0, #0x18\n\
+ lsr r5, r0, #0x18\n\
+ lsl r0, r5, #0x2\n\
+ add r0, r0, r5\n\
+ lsl r0, r0, #0x3\n\
+ ldr r2, ._136 @ gTasks\n\
+ add r4, r0, r2\n\
+ mov r1, #0x0\n\
+ ldsh r0, [r4, r1]\n\
+ cmp r0, #0\n\
+ beq ._133 @cond_branch\n\
+ cmp r0, #0x1\n\
+ beq ._134 @cond_branch\n\
+ b ._141\n\
+._137:\n\
+ .align 2, 0\n\
+._136:\n\
+ .word gTasks+0x8\n\
+._133:\n\
+ ldr r0, ._139 @ Task_ResetRtc_0\n\
+ mov r1, #0x50\n\
+ bl CreateTask\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ strh r0, [r4, #0x2]\n\
+ ldrh r0, [r4]\n\
+ add r0, r0, #0x1\n\
+ strh r0, [r4]\n\
+ b ._141\n\
+._140:\n\
+ .align 2, 0\n\
+._139:\n\
+ .word Task_ResetRtc_0+1\n\
+._134:\n\
+ sub r2, r2, #0x8\n\
+ mov r0, #0x2\n\
+ ldsh r1, [r4, r0]\n\
+ lsl r0, r1, #0x2\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x3\n\
+ add r2, r0, r2\n\
+ mov r1, #0x8\n\
+ ldsh r0, [r2, r1]\n\
+ cmp r0, #0\n\
+ beq ._141 @cond_branch\n\
+ mov r1, #0xa\n\
+ ldsh r0, [r2, r1]\n\
+ cmp r0, #0x1\n\
+ bne ._142 @cond_branch\n\
+ ldr r3, ._143 @ gLocalTime\n\
+ mov r1, #0x0\n\
+ ldsh r0, [r3, r1]\n\
+ mov r1, #0x2\n\
+ ldsb r1, [r3, r1]\n\
+ mov r2, #0x3\n\
+ ldsb r2, [r3, r2]\n\
+ ldrb r3, [r3, #0x4]\n\
+ lsl r3, r3, #0x18\n\
+ asr r3, r3, #0x18\n\
+ bl RtcCalcLocalTimeOffset\n\
+._142:\n\
+ ldrb r0, [r4, #0x2]\n\
+ bl DestroyTask\n\
+ bl Menu_EraseScreen\n\
+ bl ScriptContext2_Disable\n\
+ add r0, r5, #0\n\
+ bl DestroyTask\n\
+._141:\n\
+ pop {r4, r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+._144:\n\
+ .align 2, 0\n\
+._143:\n\
+ .word gLocalTime");
+}
+
+__attribute__((naked))
+void debug_sub_806F99C()
+{
+ asm("\
+ push {lr}\n\
+ bl RtcCalcLocalTime\n\
+ ldr r0, ._145 @ debug_sub_806F908\n\
+ mov r1, #0x50\n\
+ bl CreateTask\n\
+ bl ScriptContext2_Enable\n\
+ pop {r0}\n\
+ bx r0\n\
+._146:\n\
+ .align 2, 0\n\
+._145:\n\
+ .word debug_sub_806F908+1");
+}
+
+__attribute__((naked))
+void debug_sub_806F9B8()
+{
+ asm("\
+ push {lr}\n\
+ ldr r2, ._147 @ gLocalTime\n\
+ ldr r0, ._147 + 4 @ gSaveBlock2\n\
+ add r0, r0, #0xa0\n\
+ ldr r1, [r0, #0x4]\n\
+ ldr r0, [r0]\n\
+ str r0, [r2]\n\
+ str r1, [r2, #0x4]\n\
+ ldr r0, ._147 + 8 @ debug_sub_806F908\n\
+ mov r1, #0x50\n\
+ bl CreateTask\n\
+ bl ScriptContext2_Enable\n\
+ pop {r0}\n\
+ bx r0\n\
+._148:\n\
+ .align 2, 0\n\
+._147:\n\
+ .word gLocalTime\n\
+ .word gSaveBlock2\n\
+ .word debug_sub_806F908+1");
+}
+
+__attribute__((naked))
+void debug_sub_806F9E4()
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, sl\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5, r6, r7}\n\
+ lsl r0, r0, #0x18\n\
+ lsr r7, r0, #0x18\n\
+ lsl r0, r7, #0x2\n\
+ add r0, r0, r7\n\
+ lsl r0, r0, #0x3\n\
+ ldr r1, ._153 @ gTasks\n\
+ add r5, r0, r1\n\
+ ldr r6, ._153 + 4 @ gStringVar4\n\
+ mov r1, #0x0\n\
+ ldsh r0, [r5, r1]\n\
+ cmp r0, #0x1\n\
+ beq ._149 @cond_branch\n\
+ cmp r0, #0x1\n\
+ bgt ._150 @cond_branch\n\
+ cmp r0, #0\n\
+ beq ._151 @cond_branch\n\
+ b ._165\n\
+._154:\n\
+ .align 2, 0\n\
+._153:\n\
+ .word gTasks+0x8\n\
+ .word gStringVar4\n\
+._150:\n\
+ cmp r0, #0x2\n\
+ beq ._155 @cond_branch\n\
+ b ._165\n\
+._149:\n\
+ mov r0, #0x0\n\
+ mov r1, #0x9\n\
+ mov r2, #0x1d\n\
+ mov r3, #0x13\n\
+ bl Menu_DrawStdWindowFrame\n\
+ add r4, r6, #0\n\
+ add r4, r4, #0x50\n\
+ bl RtcGetErrorStatus\n\
+ add r1, r0, #0\n\
+ lsl r1, r1, #0x10\n\
+ lsr r1, r1, #0x10\n\
+ add r0, r4, #0\n\
+ mov r2, #0x2\n\
+ mov r3, #0x4\n\
+ bl ConvertIntToHexStringN\n\
+ add r0, r4, #0\n\
+ mov r1, #0x2\n\
+ mov r2, #0xa\n\
+ bl Menu_PrintText\n\
+ ldr r0, ._158 @ gUnknown_Debug_0839AE94\n\
+ mov r1, #0xc\n\
+ mov r2, #0xc\n\
+ bl Menu_PrintText\n\
+ ldr r0, ._158 + 4 @ gUnknown_Debug_0839AE99\n\
+ mov r1, #0x14\n\
+ mov r2, #0xc\n\
+ bl Menu_PrintText\n\
+ ldr r0, ._158 + 8 @ gUnknown_Debug_0839AEA7\n\
+ mov r1, #0x1\n\
+ mov r2, #0xe\n\
+ bl Menu_PrintText\n\
+ ldr r0, ._158 + 12 @ gUnknown_Debug_0839AE9D\n\
+ mov r1, #0x1\n\
+ mov r2, #0x10\n\
+ bl Menu_PrintText\n\
+._151:\n\
+ ldrh r0, [r5]\n\
+ add r0, r0, #0x1\n\
+ strh r0, [r5]\n\
+ b ._165\n\
+._159:\n\
+ .align 2, 0\n\
+._158:\n\
+ .word gUnknown_Debug_0839AE94\n\
+ .word gUnknown_Debug_0839AE99\n\
+ .word gUnknown_Debug_0839AEA7\n\
+ .word gUnknown_Debug_0839AE9D\n\
+._155:\n\
+ bl RtcCalcLocalTime\n\
+ add r0, r6, #0\n\
+ bl FormatHexRtcTime\n\
+ mov r2, #0x14\n\
+ add r2, r2, r6\n\
+ mov r9, r2\n\
+ mov r0, r9\n\
+ bl debug_sub_8009894\n\
+ mov r0, #0x28\n\
+ add r0, r0, r6\n\
+ mov sl, r0\n\
+ ldr r4, ._163 @ gLocalTime\n\
+ mov r1, #0x2\n\
+ ldsb r1, [r4, r1]\n\
+ mov r2, #0x3\n\
+ ldsb r2, [r4, r2]\n\
+ mov r3, #0x4\n\
+ ldsb r3, [r4, r3]\n\
+ bl FormatDecimalTime\n\
+ mov r1, #0x3c\n\
+ add r1, r1, r6\n\
+ mov r8, r1\n\
+ mov r2, #0x0\n\
+ ldsh r1, [r4, r2]\n\
+ mov r0, r8\n\
+ mov r2, #0x1\n\
+ mov r3, #0x4\n\
+ bl ConvertIntToDecimalStringN\n\
+ ldr r0, ._163 + 4 @ gSaveBlock2\n\
+ ldrb r0, [r0, #0x12]\n\
+ cmp r0, #0\n\
+ bne ._160 @cond_branch\n\
+ add r0, r6, #0\n\
+ mov r1, #0x14\n\
+ mov r2, #0xe\n\
+ bl Menu_PrintText\n\
+ mov r0, r9\n\
+ mov r1, #0xc\n\
+ mov r2, #0xe\n\
+ bl Menu_PrintText\n\
+ mov r0, sl\n\
+ mov r1, #0x14\n\
+ mov r2, #0x10\n\
+ bl Menu_PrintText\n\
+ mov r0, r8\n\
+ mov r1, #0xc\n\
+ mov r2, #0x10\n\
+ bl Menu_PrintText\n\
+._160:\n\
+ ldrh r1, [r5, #0x2]\n\
+ mov r2, #0x2\n\
+ ldsh r0, [r5, r2]\n\
+ cmp r0, #0x13\n\
+ ble ._161 @cond_branch\n\
+ add r0, r1, #1\n\
+ strh r0, [r5, #0x2]\n\
+ b ._165\n\
+._164:\n\
+ .align 2, 0\n\
+._163:\n\
+ .word gLocalTime\n\
+ .word gSaveBlock2\n\
+._161:\n\
+ ldr r0, ._166 @ gMain\n\
+ ldrh r1, [r0, #0x2e]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._165 @cond_branch\n\
+ bl Menu_EraseScreen\n\
+ add r0, r7, #0\n\
+ bl DestroyTask\n\
+ bl ScriptContext2_Disable\n\
+._165:\n\
+ pop {r3, r4, r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov sl, r5\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._167:\n\
+ .align 2, 0\n\
+._166:\n\
+ .word gMain");
+}
+
+#endif \ No newline at end of file