summaryrefslogtreecommitdiff
path: root/src/engine/clock.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/clock.c')
-rw-r--r--src/engine/clock.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/engine/clock.c b/src/engine/clock.c
index 9635514d2..416aaa6bb 100644
--- a/src/engine/clock.c
+++ b/src/engine/clock.c
@@ -20,7 +20,7 @@ static void ReturnFromStartWallClock(void);
static void InitTimeBasedEvents(void)
{
- FlagSet(SYS_CLOCK_SET);
+ FlagSet(FLAG_SYS_CLOCK_SET);
RtcCalcLocalTime();
gSaveBlock2.lastBerryTreeUpdate = gLocalTime;
VarSet(VAR_DAYS, gLocalTime.days);
@@ -28,7 +28,7 @@ static void InitTimeBasedEvents(void)
void DoTimeBasedEvents(void)
{
- if (FlagGet(SYS_CLOCK_SET))
+ if (FlagGet(FLAG_SYS_CLOCK_SET))
{
RtcCalcLocalTime();
UpdatePerDay(&gLocalTime);
@@ -45,7 +45,7 @@ static void UpdatePerDay(struct Time *time)
if (days != time->days && days <= time->days)
{
newDays = time->days - days;
- ClearUpperFlags();
+ ClearDailyFlags();
UpdateDewfordTrendPerDay(newDays);
UpdateTVShowsPerDay(newDays);
UpdateWeatherPerDay(newDays);
@@ -61,19 +61,18 @@ static void UpdatePerDay(struct Time *time)
static void UpdatePerMinute(struct Time *time)
{
struct Time newTime;
- s32 minutes;
+ s32 minutesPassed;
CalcTimeDifference(&newTime, &gSaveBlock2.lastBerryTreeUpdate, time);
- minutes = 1440 * newTime.days + 60 * newTime.hours + newTime.minutes;
+ minutesPassed = 1440 * newTime.days + 60 * newTime.hours + newTime.minutes;
- // there's no way to get the correct assembly other than with this nested if check. so dumb.
- if (minutes != 0)
+ if (minutesPassed == 0) // do not do the update for the first minute.
+ return;
+
+ if (minutesPassed > -1) // do not perform an update on invalid minutesPassed.
{
- if (minutes >= 0)
- {
- BerryTreeTimeUpdate(minutes);
- gSaveBlock2.lastBerryTreeUpdate = *time;
- }
+ BerryTreeTimeUpdate(minutesPassed);
+ gSaveBlock2.lastBerryTreeUpdate = *time;
}
}