Form changes and evolutions happen based on fake RTC
This commit is contained in:
parent
56859e35e0
commit
53414cb8bb
@ -5,5 +5,6 @@
|
||||
|
||||
void InitTimeBasedEvents(void);
|
||||
void DoTimeBasedEvents(void);
|
||||
void FormChangeTimeUpdate();
|
||||
|
||||
#endif // GUARD_CLOCK_H
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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++)
|
||||
|
||||
@ -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)
|
||||
|
||||
10
src/rtc.c
10
src/rtc.c
@ -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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user