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 InitTimeBasedEvents(void);
|
||||||
void DoTimeBasedEvents(void);
|
void DoTimeBasedEvents(void);
|
||||||
|
void FormChangeTimeUpdate();
|
||||||
|
|
||||||
#endif // GUARD_CLOCK_H
|
#endif // GUARD_CLOCK_H
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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++)
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
10
src/rtc.c
10
src/rtc.c
@ -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)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user