Form changes and evolutions happen based on fake RTC

This commit is contained in:
Eduardo Quezada 2024-09-16 16:15:30 -03:00
parent 56859e35e0
commit 53414cb8bb
6 changed files with 9 additions and 14 deletions

View File

@ -5,5 +5,6 @@
void InitTimeBasedEvents(void);
void DoTimeBasedEvents(void);
void FormChangeTimeUpdate();
#endif // GUARD_CLOCK_H

View File

@ -141,7 +141,7 @@ void CleanupOverworldWindowsAndTilemaps(void);
bool32 IsOverworldLinkActive(void);
void CB1_Overworld(void);
void CB2_OverworldBasic(void);
u8 UpdateTimeOfDay(void);
void UpdateTimeOfDay(void);
bool8 MapHasNaturalLight(u8 mapType);
void UpdateAltBgPalettes(u16 palettes);
void UpdatePalettesWithTime(u32);

View File

@ -18,7 +18,7 @@
#define RTC_ERR_FLAG_MASK 0x0FF0
//Morning and evening don't exist in Gen 3
#if OW_TIMES_OF_DAY == GEN_3
#if OW_TIMES_OF_DAY <= GEN_3
#define MORNING_HOUR_BEGIN 0
#define MORNING_HOUR_END 0

View File

@ -1,4 +1,5 @@
#include "global.h"
#include "clock.h"
#include "event_data.h"
#include "rtc.h"
#include "time_events.h"
@ -15,7 +16,6 @@
static void UpdatePerDay(struct Time *localTime);
static void UpdatePerMinute(struct Time *localTime);
static void FormChangeTimeUpdate();
void InitTimeBasedEvents(void)
{
@ -72,12 +72,11 @@ static void UpdatePerMinute(struct Time *localTime)
{
BerryTreeTimeUpdate(minutes);
gSaveBlock2Ptr->lastBerryTreeUpdate = *localTime;
FormChangeTimeUpdate();
}
}
}
static void FormChangeTimeUpdate()
void FormChangeTimeUpdate()
{
s32 i;
for (i = 0; i < PARTY_SIZE; i++)

View File

@ -1538,7 +1538,7 @@ const struct BlendSettings gTimeOfDayBlend[] =
[TIME_NIGHT] = {.coeff = 10, .blendColor = TINT_NIGHT, .isTint = TRUE},
};
u8 UpdateTimeOfDay(void)
void UpdateTimeOfDay(void)
{
s32 hours, minutes;
RtcCalcLocalTime();
@ -1697,6 +1697,7 @@ static void OverworldBasic(void)
};
gTimeUpdateCounter = 0;
UpdateTimeOfDay();
FormChangeTimeUpdate();
if (cachedBlend.time0 != currentTimeBlend.time0
|| cachedBlend.time1 != currentTimeBlend.time1
|| cachedBlend.weight != currentTimeBlend.weight)

View File

@ -4,6 +4,7 @@
#include "strings.h"
#include "text.h"
#include "fake_rtc.h"
#include "overworld.h"
// iwram bss
static u16 sErrorStatus;
@ -327,14 +328,7 @@ bool8 IsBetweenHours(s32 hours, s32 begin, s32 end)
u8 GetTimeOfDay(void)
{
RtcCalcLocalTime();
if (IsBetweenHours(gLocalTime.hours, MORNING_HOUR_BEGIN, MORNING_HOUR_END))
return TIME_MORNING;
else if (IsBetweenHours(gLocalTime.hours, EVENING_HOUR_BEGIN, EVENING_HOUR_END))
return TIME_EVENING;
else if (IsBetweenHours(gLocalTime.hours, NIGHT_HOUR_BEGIN, NIGHT_HOUR_END))
return TIME_NIGHT;
return TIME_DAY;
return gTimeOfDay;
}
void RtcInitLocalTimeOffset(s32 hour, s32 minute)