summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/berry_blender.c2
-rwxr-xr-xsrc/clear_save_data_screen.c2
-rw-r--r--src/clock.c53
-rw-r--r--src/egg_hatch.c4
-rw-r--r--src/evolution_scene.c2
-rw-r--r--src/starter_choose.c2
-rw-r--r--src/tv.c2
-rw-r--r--src/wallclock.c279
8 files changed, 180 insertions, 166 deletions
diff --git a/src/berry_blender.c b/src/berry_blender.c
index b1d36e2d9..b1e8712a6 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -2444,7 +2444,7 @@ static void CB2_HandleBlenderEndGame(void)
sBerryBlenderData->gameEndState++;
break;
case 10:
- switch (sub_8198C58())
+ switch (ProcessMenuInputNoWrap_())
{
case 1:
case -1:
diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c
index d00944ac1..6d6a1545b 100755
--- a/src/clear_save_data_screen.c
+++ b/src/clear_save_data_screen.c
@@ -88,7 +88,7 @@ static void Task_DoClearSaveDataScreenYesNo(u8 taskId)
static void Task_ClearSaveDataScreenYesNoChoice(u8 taskId)
{
- switch(sub_8198C58())
+ switch(ProcessMenuInputNoWrap_())
{
case 0:
FillWindowPixelBuffer(0, 17);
diff --git a/src/clock.c b/src/clock.c
index 2ba42f70d..7cea30166 100644
--- a/src/clock.c
+++ b/src/clock.c
@@ -15,14 +15,14 @@
// static declarations
-static void sub_809E7E8(struct Time *localTime);
-static void sub_809E858(struct Time *localTime);
+static void UpdatePerDay(struct Time *localTime);
+static void UpdatePerMinute(struct Time *localTime);
// rodata
// text
-static void sub_809E778(void)
+static void InitTimeBasedEvents(void)
{
FlagSet(FLAG_SYS_CLOCK_SET);
RtcCalcLocalTime();
@@ -35,38 +35,35 @@ void DoTimeBasedEvents(void)
if (FlagGet(FLAG_SYS_CLOCK_SET) && !sub_813B9C0())
{
RtcCalcLocalTime();
- sub_809E7E8(&gLocalTime);
- sub_809E858(&gLocalTime);
+ UpdatePerDay(&gLocalTime);
+ UpdatePerMinute(&gLocalTime);
}
}
-static void sub_809E7E8(struct Time *localTime)
+static void UpdatePerDay(struct Time *localTime)
{
u16 *days = GetVarPointer(VAR_DAYS);
u16 daysSince;
- if (*days != localTime->days)
+ if (*days != localTime->days && *days <= localTime->days)
{
- if (*days <= localTime->days)
- {
- daysSince = localTime->days - *days;
- ClearUpperFlags();
- sub_8122580(daysSince);
- sub_80ED888(daysSince);
- sub_80AEFBC(daysSince);
- UpdatePartyPokerusTime(daysSince);
- sub_8137904(daysSince);
- sub_8137A20(daysSince);
- sub_8139EF4(daysSince);
- sub_813A7F4(daysSince);
- sub_813945C(daysSince);
- SetRandomLotteryNumber(daysSince);
- *days = localTime->days;
- }
+ daysSince = localTime->days - *days;
+ ClearUpperFlags();
+ UpdateDewfordTrendPerDay(daysSince);
+ UpdateTVShowsPerDay(daysSince);
+ UpdateWeatherPerDay(daysSince);
+ UpdatePartyPokerusTime(daysSince);
+ UpdateMirageRnd(daysSince);
+ UpdateBirchState(daysSince);
+ UpdateFrontierManiac(daysSince);
+ UpdateFrontierGambler(daysSince);
+ SetShoalItemFlag(daysSince);
+ SetRandomLotteryNumber(daysSince);
+ *days = localTime->days;
}
}
-static void sub_809E858(struct Time *localTime)
+static void UpdatePerMinute(struct Time *localTime)
{
struct Time difference;
int minutes;
@@ -83,14 +80,14 @@ static void sub_809E858(struct Time *localTime)
}
}
-void sub_809E8B4(void)
+static void ReturnFromStartWallClock(void)
{
- sub_809E778();
+ InitTimeBasedEvents();
SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
}
-void Special_StartWallClock(void)
+void StartWallClock(void)
{
SetMainCallback2(Cb2_StartWallClock);
- gMain.savedCallback = sub_809E8B4;
+ gMain.savedCallback = ReturnFromStartWallClock;
}
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index 032607806..a31eb0520 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -58,7 +58,7 @@ extern const u8 gText_HatchedFromEgg[];
extern const u8 gText_NickHatchPrompt[];
extern u8 sav1_map_get_name(void);
-extern s8 sub_8198C58(void);
+extern s8 ProcessMenuInputNoWrap_(void);
extern void TVShowConvertInternationalString(u8* str1, u8* str2, u8);
extern void sub_806A068(u16, u8);
extern void fade_screen(u8, u8);
@@ -669,7 +669,7 @@ static void CB2_EggHatch_1(void)
}
break;
case 10:
- switch (sub_8198C58())
+ switch (ProcessMenuInputNoWrap_())
{
case 0:
GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar3);
diff --git a/src/evolution_scene.c b/src/evolution_scene.c
index c17921b74..2b88fec3a 100644
--- a/src/evolution_scene.c
+++ b/src/evolution_scene.c
@@ -1168,7 +1168,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
}
break;
case 4:
- switch (sub_8198C58())
+ switch (ProcessMenuInputNoWrap_())
{
case 0:
sEvoCursorPos = 0;
diff --git a/src/starter_choose.c b/src/starter_choose.c
index 82f8f75f6..2d78af8fb 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -265,7 +265,7 @@ static void Task_StarterChoose5(u8 taskId)
{
u8 spriteId;
- switch (sub_8198C58())
+ switch (ProcessMenuInputNoWrap_())
{
case 0: // YES
// Return the starter choice and exit.
diff --git a/src/tv.c b/src/tv.c
index 1605be29c..205adbf4d 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -1793,7 +1793,7 @@ void EndMassOutbreak(void)
gSaveBlock1Ptr->outbreakDaysLeft = 0;
}
-void sub_80ED888(u16 days)
+void UpdateTVShowsPerDay(u16 days)
{
sub_80ED8B4(days);
diff --git a/src/wallclock.c b/src/wallclock.c
index ccec36739..892ef3f05 100644
--- a/src/wallclock.c
+++ b/src/wallclock.c
@@ -22,38 +22,38 @@
// static types
-#define WALL_CLOCK_TASK_MINUTE_HAND_ANGLE 0
-#define WALL_CLOCK_TASK_HOUR_HAND_ANGLE 1
-#define WALL_CLOCK_TASK_HOUR 2
-#define WALL_CLOCK_TASK_MINUTE 3
-#define WALL_CLOCK_TASK_SET_COMMAND 4
-#define WALL_CLOCK_TASK_12HRCLOCK_AM_PM 5
-#define WALL_CLOCK_TASK_SET_SPEED 6
+#define tMinuteHandAngle data[0]
+#define tHourHandAngle data[1]
+#define tHours data[2]
+#define tMinutes data[3]
+#define tMvmtDir data[4]
+#define tPeriod data[5]
+#define tMvmtSpeed data[6]
#define TAG_GFX_WALL_CLOCK_HAND 0x1000
#define TAG_PAL_WALL_CLOCK_HAND 0x1000
// static declarations
-static void sub_8134C9C(void);
-static void sub_8134CB8(u8 taskId);
-static void sub_8134CE8(u8 taskId);
-static void sub_8134DC4(u8 taskId);
-static void c3_80BF560(u8 taskId);
-static void sub_8134EA4(u8 taskId);
-static void c2_080111BC(u8 taskId);
-static void sub_8134F10(u8 taskId);
-static void sub_8134F40(u8 taskId);
-static void sub_8134F78(u8 taskId);
-static void sub_8134FB0(u8 taskId);
-static u16 GetClockHandAngle(u16 a0, u8 command, u8 a2);
-static bool32 MoveClockHand(u8 taskId, u8 command);
-static void _12HourClockFixAMPM(u8 taskId, u8 command);
-static void sub_8135130(u8 taskId);
-static void sub_81351AC(struct Sprite *sprite);
-static void sub_8135244(struct Sprite *sprite);
-static void sub_81352DC(struct Sprite *sprite);
-static void sub_8135380(struct Sprite *sprite);
+static void WallClockMainCallback(void);
+static void Task_SetClock1(u8 taskId);
+static void Task_SetClock2(u8 taskId);
+static void Task_SetClock3(u8 taskId);
+static void Task_SetClock4(u8 taskId);
+static void Task_SetClock5(u8 taskId);
+static void Task_SetClock6(u8 taskId);
+static void Task_ViewClock1(u8 taskId);
+static void Task_ViewClock2(u8 taskId);
+static void Task_ViewClock3(u8 taskId);
+static void Task_ViewClock4(u8 taskId);
+static u16 CalcNewMinHandAngle(u16 a0, u8 command, u8 a2);
+static bool32 AdvanceClock(u8 taskId, u8 command);
+static void UpdateClockPeriod(u8 taskId, u8 command);
+static void InitClockWithRtc(u8 taskId);
+static void SpriteCB_MinuteHand(struct Sprite *sprite);
+static void SpriteCB_HourHand(struct Sprite *sprite);
+static void SpriteCB_AMIndicator(struct Sprite *sprite);
+static void SpriteCB_PMIndicator(struct Sprite *sprite);
// rodata
@@ -122,7 +122,7 @@ static const struct SpriteTemplate gUnknown_085B2250 = {
gUnknown_085B2248,
NULL,
gDummySpriteAffineAnimTable,
- sub_81351AC
+ SpriteCB_MinuteHand
};
static const struct SpriteTemplate gUnknown_085B2268 = {
TAG_GFX_WALL_CLOCK_HAND,
@@ -131,7 +131,7 @@ static const struct SpriteTemplate gUnknown_085B2268 = {
gUnknown_085B224C,
NULL,
gDummySpriteAffineAnimTable,
- sub_8135244
+ SpriteCB_HourHand
};
static const struct OamData Unknown_085B2280 = {
.y = 0xa0,
@@ -159,7 +159,7 @@ static const struct SpriteTemplate gUnknown_085B22A0 = {
gUnknown_085B2298,
NULL,
gDummySpriteAffineAnimTable,
- sub_81352DC
+ SpriteCB_AMIndicator
};
static const struct SpriteTemplate gUnknown_085B22B8 = {
TAG_GFX_WALL_CLOCK_HAND,
@@ -168,7 +168,7 @@ static const struct SpriteTemplate gUnknown_085B22B8 = {
gUnknown_085B229C,
NULL,
gDummySpriteAffineAnimTable,
- sub_8135380
+ SpriteCB_PMIndicator
};
static const s8 sClockHandCoords[][2] = {
{ 0x00, -0x18},
@@ -535,14 +535,14 @@ static const s8 sClockHandCoords[][2] = {
// text
-static void sub_81347B4(void)
+static void WallClockVblankCallback(void)
{
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
}
-void LoadWallClockGraphics(void)
+static void LoadWallClockGraphics(void)
{
SetVBlankCallback(NULL);
SetGpuReg(REG_OFFSET_DISPCNT, 0x0000);
@@ -587,12 +587,12 @@ void LoadWallClockGraphics(void)
LoadSpritePalettes(gUnknown_085B2218);
}
-void sub_813498C(void)
+static void WallClockInit(void)
{
BeginNormalPaletteFade(-1, 0, 16, 0, 0);
EnableInterrupts(INTR_FLAG_VBLANK);
- SetVBlankCallback(sub_81347B4);
- SetMainCallback2(sub_8134C9C);
+ SetVBlankCallback(WallClockVblankCallback);
+ SetMainCallback2(WallClockMainCallback);
SetGpuReg(REG_OFFSET_BLDCNT, 0x0000);
SetGpuReg(REG_OFFSET_BLDALPHA, 0x0000);
SetGpuReg(REG_OFFSET_BLDY, 0x0000);
@@ -609,29 +609,36 @@ void Cb2_StartWallClock(void)
LoadWallClockGraphics();
LZ77UnCompVram(gUnknown_08DCC648, (u16 *)BG_SCREEN_ADDR(7));
- taskId = CreateTask(sub_8134CB8, 0);
- gTasks[taskId].data[WALL_CLOCK_TASK_HOUR] = 10;
- gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE] = 0;
- gTasks[taskId].data[WALL_CLOCK_TASK_SET_COMMAND] = 0;
- gTasks[taskId].data[WALL_CLOCK_TASK_12HRCLOCK_AM_PM] = 0;
- gTasks[taskId].data[WALL_CLOCK_TASK_SET_SPEED] = 0;
- gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE_HAND_ANGLE] = 0;
- gTasks[taskId].data[WALL_CLOCK_TASK_HOUR_HAND_ANGLE] = 0x12c;
+
+ taskId = CreateTask(Task_SetClock1, 0);
+ gTasks[taskId].tHours = 10;
+ gTasks[taskId].tMinutes = 0;
+ gTasks[taskId].tMvmtDir = 0;
+ gTasks[taskId].tPeriod = 0;
+ gTasks[taskId].tMvmtSpeed = 0;
+ gTasks[taskId].tMinuteHandAngle = 0;
+ gTasks[taskId].tHourHandAngle = 300;
+
spriteId = CreateSprite(&gUnknown_085B2250, 0x78, 0x50, 1);
gSprites[spriteId].data[0] = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 0;
+
spriteId = CreateSprite(&gUnknown_085B2268, 0x78, 0x50, 0);
gSprites[spriteId].data[0] = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 1;
+
spriteId = CreateSprite(&gUnknown_085B22A0, 0x78, 0x50, 2);
gSprites[spriteId].data[0] = taskId;
gSprites[spriteId].data[1] = 45;
+
spriteId = CreateSprite(&gUnknown_085B22B8, 0x78, 0x50, 2);
gSprites[spriteId].data[0] = taskId;
gSprites[spriteId].data[1] = 90;
- sub_813498C();
+
+ WallClockInit();
+
PrintTextOnWindow(1, 1, gText_Confirm3, 0, 1, 0, NULL);
PutWindowTilemap(1);
schedule_bg_copy_tilemap_to_vram(2);
@@ -641,44 +648,51 @@ void Cb2_ViewWallClock(void)
{
u8 taskId;
u8 spriteId;
- u8 r10;
- u8 spc;
+ u8 angle1;
+ u8 angle2;
LoadWallClockGraphics();
LZ77UnCompVram(gUnknown_08DCC908, (u16 *)BG_SCREEN_ADDR(7));
- taskId = CreateTask(sub_8134F10, 0);
- sub_8135130(taskId);
- if (gTasks[taskId].data[WALL_CLOCK_TASK_12HRCLOCK_AM_PM] == 0)
+
+ taskId = CreateTask(Task_ViewClock1, 0);
+ InitClockWithRtc(taskId);
+ if (gTasks[taskId].tPeriod == 0)
{
- r10 = 45;
- spc = 90;
+ angle1 = 45;
+ angle2 = 90;
}
else
{
- r10 = 90;
- spc = 135;
+ angle1 = 90;
+ angle2 = 135;
}
+
spriteId = CreateSprite(&gUnknown_085B2250, 0x78, 0x50, 1);
gSprites[spriteId].data[0] = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 0;
+
spriteId = CreateSprite(&gUnknown_085B2268, 0x78, 0x50, 0);
gSprites[spriteId].data[0] = taskId;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.matrixNum = 1;
+
spriteId = CreateSprite(&gUnknown_085B22A0, 0x78, 0x50, 2);
gSprites[spriteId].data[0] = taskId;
- gSprites[spriteId].data[1] = r10;
+ gSprites[spriteId].data[1] = angle1;
+
spriteId = CreateSprite(&gUnknown_085B22B8, 0x78, 0x50, 2);
gSprites[spriteId].data[0] = taskId;
- gSprites[spriteId].data[1] = spc;
- sub_813498C();
+ gSprites[spriteId].data[1] = angle2;
+
+ WallClockInit();
+
PrintTextOnWindow(1, 1, gText_Cancel4, 0, 1, 0, NULL);
PutWindowTilemap(1);
schedule_bg_copy_tilemap_to_vram(2);
}
-static void sub_8134C9C(void)
+static void WallClockMainCallback(void)
{
RunTasks();
AnimateSprites();
@@ -687,92 +701,92 @@ static void sub_8134C9C(void)
UpdatePaletteFade();
}
-static void sub_8134CB8(u8 taskId)
+static void Task_SetClock1(u8 taskId)
{
if (!gPaletteFade.active)
{
- gTasks[taskId].func = sub_8134CE8;
+ gTasks[taskId].func = Task_SetClock2;
}
}
-static void sub_8134CE8(u8 taskId)
+static void Task_SetClock2(u8 taskId)
{
- if (gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE_HAND_ANGLE] % 6)
+ if (gTasks[taskId].tMinuteHandAngle % 6)
{
- gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE_HAND_ANGLE] = GetClockHandAngle(gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE_HAND_ANGLE], gTasks[taskId].data[WALL_CLOCK_TASK_SET_COMMAND], gTasks[taskId].data[WALL_CLOCK_TASK_SET_SPEED]);
+ gTasks[taskId].tMinuteHandAngle = CalcNewMinHandAngle(gTasks[taskId].tMinuteHandAngle, gTasks[taskId].tMvmtDir, gTasks[taskId].tMvmtSpeed);
}
else
{
- gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE_HAND_ANGLE] = gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE] * 6;
- gTasks[taskId].data[WALL_CLOCK_TASK_HOUR_HAND_ANGLE] = (gTasks[taskId].data[WALL_CLOCK_TASK_HOUR] % 12) * 30 + (gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE] / 10) * 5;
+ gTasks[taskId].tMinuteHandAngle = gTasks[taskId].tMinutes * 6;
+ gTasks[taskId].tHourHandAngle = (gTasks[taskId].tHours % 12) * 30 + (gTasks[taskId].tMinutes / 10) * 5;
if (gMain.newKeys & A_BUTTON)
{
- gTasks[taskId].func = sub_8134DC4;
+ gTasks[taskId].func = Task_SetClock3;
}
else
{
- gTasks[taskId].data[WALL_CLOCK_TASK_SET_COMMAND] = 0;
+ gTasks[taskId].tMvmtDir = 0;
if (gMain.heldKeys & DPAD_LEFT)
{
- gTasks[taskId].data[WALL_CLOCK_TASK_SET_COMMAND] = 1;
+ gTasks[taskId].tMvmtDir = 1;
}
if (gMain.heldKeys & DPAD_RIGHT)
{
- gTasks[taskId].data[WALL_CLOCK_TASK_SET_COMMAND] = 2;
+ gTasks[taskId].tMvmtDir = 2;
}
- if (gTasks[taskId].data[WALL_CLOCK_TASK_SET_COMMAND] != 0)
+ if (gTasks[taskId].tMvmtDir != 0)
{
- if (gTasks[taskId].data[WALL_CLOCK_TASK_SET_SPEED] <= 0xFE)
+ if (gTasks[taskId].tMvmtSpeed < 0xFF)
{
- gTasks[taskId].data[WALL_CLOCK_TASK_SET_SPEED]++;
+ gTasks[taskId].tMvmtSpeed++;
}
- gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE_HAND_ANGLE] = GetClockHandAngle(gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE_HAND_ANGLE], gTasks[taskId].data[WALL_CLOCK_TASK_SET_COMMAND], gTasks[taskId].data[WALL_CLOCK_TASK_SET_SPEED]);
- MoveClockHand(taskId, gTasks[taskId].data[WALL_CLOCK_TASK_SET_COMMAND]);
+ gTasks[taskId].tMinuteHandAngle = CalcNewMinHandAngle(gTasks[taskId].tMinuteHandAngle, gTasks[taskId].tMvmtDir, gTasks[taskId].tMvmtSpeed);
+ AdvanceClock(taskId, gTasks[taskId].tMvmtDir);
}
else
{
- gTasks[taskId].data[WALL_CLOCK_TASK_SET_SPEED] = 0;
+ gTasks[taskId].tMvmtSpeed = 0;
}
}
}
}
-static void sub_8134DC4(u8 taskId)
+static void Task_SetClock3(u8 taskId)
{
SetWindowBorderStyle(0, FALSE, 0x250, 0x0d);
PrintTextOnWindow(0, 1, gText_IsThisTheCorrectTime, 0, 1, 0, NULL);
PutWindowTilemap(0);
schedule_bg_copy_tilemap_to_vram(0);
CreateYesNoMenu(&gUnknown_085B21F4, 0x250, 0x0d, 1);
- gTasks[taskId].func = c3_80BF560;
+ gTasks[taskId].func = Task_SetClock4;
}
-static void c3_80BF560(u8 taskId)
+static void Task_SetClock4(u8 taskId)
{
- switch (sub_8198C58())
+ switch (ProcessMenuInputNoWrap_())
{
case 0:
PlaySE(SE_SELECT);
- gTasks[taskId].func = sub_8134EA4;
+ gTasks[taskId].func = Task_SetClock5;
break;
case 1:
case -1:
PlaySE(SE_SELECT);
sub_8198070(0, FALSE);
ClearWindowTilemap(0);
- gTasks[taskId].func = sub_8134CE8;
+ gTasks[taskId].func = Task_SetClock2;
break;
}
}
-static void sub_8134EA4(u8 taskId)
+static void Task_SetClock5(u8 taskId)
{
- RtcInitLocalTimeOffset(gTasks[taskId].data[WALL_CLOCK_TASK_HOUR], gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE]);
+ RtcInitLocalTimeOffset(gTasks[taskId].tHours, gTasks[taskId].tMinutes);
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
- gTasks[taskId].func = c2_080111BC;
+ gTasks[taskId].func = Task_SetClock6;
}
-static void c2_080111BC(u8 taskId)
+static void Task_SetClock6(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -781,30 +795,30 @@ static void c2_080111BC(u8 taskId)
}
}
-static void sub_8134F10(u8 taskId)
+static void Task_ViewClock1(u8 taskId)
{
if (!gPaletteFade.active)
{
- gTasks[taskId].func = sub_8134F40;
+ gTasks[taskId].func = Task_ViewClock2;
}
}
-static void sub_8134F40(u8 taskId)
+static void Task_ViewClock2(u8 taskId)
{
- sub_8135130(taskId);
+ InitClockWithRtc(taskId);
if (gMain.newKeys & (A_BUTTON | B_BUTTON))
{
- gTasks[taskId].func = sub_8134F78;
+ gTasks[taskId].func = Task_ViewClock3;
}
}
-static void sub_8134F78(u8 taskId)
+static void Task_ViewClock3(u8 taskId)
{
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
- gTasks[taskId].func = sub_8134FB0;
+ gTasks[taskId].func = Task_ViewClock4;
}
-static void sub_8134FB0(u8 taskId)
+static void Task_ViewClock4(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -812,7 +826,7 @@ static void sub_8134FB0(u8 taskId)
}
}
-static u8 GetClockHandAngleChange(u16 a0)
+static u8 CalcMinHandDelta(u16 a0)
{
if (a0 > 60)
{
@@ -829,9 +843,9 @@ static u8 GetClockHandAngleChange(u16 a0)
return 1;
}
-static u16 GetClockHandAngle(u16 a0, u8 command, u8 a2)
+static u16 CalcNewMinHandAngle(u16 a0, u8 command, u8 a2)
{
- u8 r1 = GetClockHandAngleChange(a2);
+ u8 r1 = CalcMinHandDelta(a2);
switch (command)
{
case 1:
@@ -846,65 +860,65 @@ static u16 GetClockHandAngle(u16 a0, u8 command, u8 a2)
return a0;
}
-static bool32 MoveClockHand(u8 taskId, u8 command)
+static bool32 AdvanceClock(u8 taskId, u8 command)
{
switch (command)
{
case 1:
- if (gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE] > 0)
+ if (gTasks[taskId].tMinutes > 0)
{
- gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE]--;
+ gTasks[taskId].tMinutes--;
}
else
{
- gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE] = 59;
- if (gTasks[taskId].data[WALL_CLOCK_TASK_HOUR] > 0)
+ gTasks[taskId].tMinutes = 59;
+ if (gTasks[taskId].tHours > 0)
{
- gTasks[taskId].data[WALL_CLOCK_TASK_HOUR]--;
+ gTasks[taskId].tHours--;
}
else
{
- gTasks[taskId].data[WALL_CLOCK_TASK_HOUR] = 23;
+ gTasks[taskId].tHours = 23;
}
- _12HourClockFixAMPM(taskId, command);
+ UpdateClockPeriod(taskId, command);
}
break;
case 2:
- if (gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE] < 59)
+ if (gTasks[taskId].tMinutes < 59)
{
- gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE]++;
+ gTasks[taskId].tMinutes++;
}
else
{
- gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE] = 0;
- if (gTasks[taskId].data[WALL_CLOCK_TASK_HOUR] < 23)
+ gTasks[taskId].tMinutes = 0;
+ if (gTasks[taskId].tHours < 23)
{
- gTasks[taskId].data[WALL_CLOCK_TASK_HOUR]++;
+ gTasks[taskId].tHours++;
}
else
{
- gTasks[taskId].data[WALL_CLOCK_TASK_HOUR] = 0;
+ gTasks[taskId].tHours = 0;
}
- _12HourClockFixAMPM(taskId, command);
+ UpdateClockPeriod(taskId, command);
}
break;
}
return FALSE;
}
-static void _12HourClockFixAMPM(u8 taskId, u8 command)
+static void UpdateClockPeriod(u8 taskId, u8 command)
{
- u8 hours = gTasks[taskId].data[WALL_CLOCK_TASK_HOUR];
+ u8 hours = gTasks[taskId].tHours;
switch (command)
{
case 1:
switch (hours)
{
case 11:
- gTasks[taskId].data[WALL_CLOCK_TASK_12HRCLOCK_AM_PM] = FALSE;
+ gTasks[taskId].tPeriod = FALSE;
break;
case 23:
- gTasks[taskId].data[WALL_CLOCK_TASK_12HRCLOCK_AM_PM] = TRUE;
+ gTasks[taskId].tPeriod = TRUE;
break;
}
break;
@@ -912,43 +926,45 @@ static void _12HourClockFixAMPM(u8 taskId, u8 command)
switch (hours)
{
case 0:
- gTasks[taskId].data[WALL_CLOCK_TASK_12HRCLOCK_AM_PM] = FALSE;
+ gTasks[taskId].tPeriod = FALSE;
break;
case 12:
- gTasks[taskId].data[WALL_CLOCK_TASK_12HRCLOCK_AM_PM] = TRUE;
+ gTasks[taskId].tPeriod = TRUE;
break;
}
break;
}
}
-static void sub_8135130(u8 taskId)
+static void InitClockWithRtc(u8 taskId)
{
RtcCalcLocalTime();
- gTasks[taskId].data[WALL_CLOCK_TASK_HOUR] = gLocalTime.hours;
- gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE] = gLocalTime.minutes;
- gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE_HAND_ANGLE] = gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE] * 6;
- gTasks[taskId].data[WALL_CLOCK_TASK_HOUR_HAND_ANGLE] = (gTasks[taskId].data[WALL_CLOCK_TASK_HOUR] % 12) * 30 + (gTasks[taskId].data[WALL_CLOCK_TASK_MINUTE] / 10) * 5;
+ gTasks[taskId].tHours = gLocalTime.hours;
+ gTasks[taskId].tMinutes = gLocalTime.minutes;
+ gTasks[taskId].tMinuteHandAngle = gTasks[taskId].tMinutes * 6;
+ gTasks[taskId].tHourHandAngle = (gTasks[taskId].tHours % 12) * 30 + (gTasks[taskId].tMinutes / 10) * 5;
if (gLocalTime.hours < 12)
{
- gTasks[taskId].data[WALL_CLOCK_TASK_12HRCLOCK_AM_PM] = FALSE;
+ gTasks[taskId].tPeriod = FALSE;
}
else
{
- gTasks[taskId].data[WALL_CLOCK_TASK_12HRCLOCK_AM_PM] = TRUE;
+ gTasks[taskId].tPeriod = TRUE;
}
}
-static void sub_81351AC(struct Sprite *sprite)
+static void SpriteCB_MinuteHand(struct Sprite *sprite)
{
- u16 angle = gTasks[sprite->data[0]].data[WALL_CLOCK_TASK_MINUTE_HAND_ANGLE];
+ u16 angle = gTasks[sprite->data[0]].tMinuteHandAngle;
s16 sin = Sin2(angle) / 16;
s16 cos = Cos2(angle) / 16;
u16 xhat;
u16 yhat;
+
SetOamMatrix(0, cos, sin, -sin, cos);
xhat = sClockHandCoords[angle][0];
yhat = sClockHandCoords[angle][1];
+
if (xhat > 0x80)
{
xhat |= 0xff00;
@@ -961,13 +977,14 @@ static void sub_81351AC(struct Sprite *sprite)
sprite->pos2.y = yhat;
}
-static void sub_8135244(struct Sprite *sprite)
+static void SpriteCB_HourHand(struct Sprite *sprite)
{
- u16 angle = gTasks[sprite->data[0]].data[WALL_CLOCK_TASK_HOUR_HAND_ANGLE];
+ u16 angle = gTasks[sprite->data[0]].tHourHandAngle;
s16 sin = Sin2(angle) / 16;
s16 cos = Cos2(angle) / 16;
u16 xhat;
u16 yhat;
+
SetOamMatrix(1, cos, sin, -sin, cos);
xhat = sClockHandCoords[angle][0];
yhat = sClockHandCoords[angle][1];
@@ -983,9 +1000,9 @@ static void sub_8135244(struct Sprite *sprite)
sprite->pos2.y = yhat;
}
-static void sub_81352DC(struct Sprite *sprite)
+static void SpriteCB_AMIndicator(struct Sprite *sprite)
{
- if (gTasks[sprite->data[0]].data[WALL_CLOCK_TASK_12HRCLOCK_AM_PM])
+ if (gTasks[sprite->data[0]].tPeriod)
{
if (sprite->data[1] >= 60 && sprite->data[1] < 90)
{
@@ -1011,9 +1028,9 @@ static void sub_81352DC(struct Sprite *sprite)
sprite->pos2.y = Sin2(sprite->data[1]) * 30 / 0x1000;
}
-static void sub_8135380(struct Sprite *sprite)
+static void SpriteCB_PMIndicator(struct Sprite *sprite)
{
- if (gTasks[sprite->data[0]].data[WALL_CLOCK_TASK_12HRCLOCK_AM_PM])
+ if (gTasks[sprite->data[0]].tPeriod)
{
if (sprite->data[1] >= 105 && sprite->data[1] < 135)
{