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 InitTimeBasedEvents(void);
void DoTimeBasedEvents(void); void DoTimeBasedEvents(void);
void FormChangeTimeUpdate();
#endif // GUARD_CLOCK_H #endif // GUARD_CLOCK_H

View File

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

View File

@ -18,7 +18,7 @@
#define RTC_ERR_FLAG_MASK 0x0FF0 #define RTC_ERR_FLAG_MASK 0x0FF0
//Morning and evening don't exist in Gen 3 //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_BEGIN 0
#define MORNING_HOUR_END 0 #define MORNING_HOUR_END 0

View File

@ -1,4 +1,5 @@
#include "global.h" #include "global.h"
#include "clock.h"
#include "event_data.h" #include "event_data.h"
#include "rtc.h" #include "rtc.h"
#include "time_events.h" #include "time_events.h"
@ -15,7 +16,6 @@
static void UpdatePerDay(struct Time *localTime); static void UpdatePerDay(struct Time *localTime);
static void UpdatePerMinute(struct Time *localTime); static void UpdatePerMinute(struct Time *localTime);
static void FormChangeTimeUpdate();
void InitTimeBasedEvents(void) void InitTimeBasedEvents(void)
{ {
@ -72,12 +72,11 @@ static void UpdatePerMinute(struct Time *localTime)
{ {
BerryTreeTimeUpdate(minutes); BerryTreeTimeUpdate(minutes);
gSaveBlock2Ptr->lastBerryTreeUpdate = *localTime; gSaveBlock2Ptr->lastBerryTreeUpdate = *localTime;
FormChangeTimeUpdate();
} }
} }
} }
static void FormChangeTimeUpdate() void FormChangeTimeUpdate()
{ {
s32 i; s32 i;
for (i = 0; i < PARTY_SIZE; 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}, [TIME_NIGHT] = {.coeff = 10, .blendColor = TINT_NIGHT, .isTint = TRUE},
}; };
u8 UpdateTimeOfDay(void) void UpdateTimeOfDay(void)
{ {
s32 hours, minutes; s32 hours, minutes;
RtcCalcLocalTime(); RtcCalcLocalTime();
@ -1697,6 +1697,7 @@ static void OverworldBasic(void)
}; };
gTimeUpdateCounter = 0; gTimeUpdateCounter = 0;
UpdateTimeOfDay(); UpdateTimeOfDay();
FormChangeTimeUpdate();
if (cachedBlend.time0 != currentTimeBlend.time0 if (cachedBlend.time0 != currentTimeBlend.time0
|| cachedBlend.time1 != currentTimeBlend.time1 || cachedBlend.time1 != currentTimeBlend.time1
|| cachedBlend.weight != currentTimeBlend.weight) || cachedBlend.weight != currentTimeBlend.weight)

View File

@ -4,6 +4,7 @@
#include "strings.h" #include "strings.h"
#include "text.h" #include "text.h"
#include "fake_rtc.h" #include "fake_rtc.h"
#include "overworld.h"
// iwram bss // iwram bss
static u16 sErrorStatus; static u16 sErrorStatus;
@ -327,14 +328,7 @@ bool8 IsBetweenHours(s32 hours, s32 begin, s32 end)
u8 GetTimeOfDay(void) u8 GetTimeOfDay(void)
{ {
RtcCalcLocalTime(); return gTimeOfDay;
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;
} }
void RtcInitLocalTimeOffset(s32 hour, s32 minute) void RtcInitLocalTimeOffset(s32 hour, s32 minute)