diff options
Diffstat (limited to 'src/engine/clock.c')
-rw-r--r-- | src/engine/clock.c | 23 |
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; } } |