From 4b16d04dccb8013712d9f8853f13a21084718635 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Wed, 4 Jan 2017 22:20:17 -0500 Subject: decompile clock.c (#161) * remove matsuda debug menu from ld_script * decompile clock.c * formatting --- src/clock.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/clock.c (limited to 'src/clock.c') diff --git a/src/clock.c b/src/clock.c new file mode 100644 index 000000000..cc0892f34 --- /dev/null +++ b/src/clock.c @@ -0,0 +1,91 @@ +#include "global.h" +#include "main.h" +#include "rtc.h" +#include "event_data.h" +#include "lottery_corner.h" +#include "berry.h" +#include "rom4.h" +#include "wallclock.h" + +extern void sub_80FA220(u16); +extern void sub_80BE8C4(u16); +extern void sub_8080834(u16); +extern void UpdatePartyPokerusTime(u16); +extern void sub_810D2F4(u16); +extern void UpdateBirchState(u16); +extern void sub_810F618(u16); + +void sub_806A390(struct Time *time); +void sub_806A3F4(struct Time *time); +void sub_806A328(void); + +void sub_806A328(void) +{ + FlagSet(0x835); + RtcCalcLocalTime(); + gSaveBlock2.lastBerryTreeUpdate = gLocalTime; + VarSet(0x4040, gLocalTime.days); +} + +void DoTimeBasedEvents(void) +{ + if(FlagGet(0x835)) + { + RtcCalcLocalTime(); + sub_806A390(&gLocalTime); + sub_806A3F4(&gLocalTime); + } +} + +void sub_806A390(struct Time *time) +{ + u16 *varPtr = GetVarPointer(0x4040); + int days = *varPtr; + u16 newDays; + + if(days != time->days && days <= time->days) + { + newDays = time->days - days; + ClearUpperFlags(); + sub_80FA220(newDays); + sub_80BE8C4(newDays); + sub_8080834(newDays); + UpdatePartyPokerusTime(newDays); + sub_810D2F4(newDays); + UpdateBirchState(newDays); + sub_810F618(newDays); + SetRandomLotteryNumber(newDays); + *varPtr = time->days; + } +} + +void sub_806A3F4(struct Time *time) +{ + struct Time newTime; + s32 totalSeconds; + + CalcTimeDifference(&newTime, &gSaveBlock2.lastBerryTreeUpdate, time); + totalSeconds = 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(totalSeconds != 0) + { + if(totalSeconds >= 0) + { + BerryTreeTimeUpdate(totalSeconds); + gSaveBlock2.lastBerryTreeUpdate = *time; + } + } +} + +void sub_806A44C(void) +{ + sub_806A328(); + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); +} + +void sub_806A460(void) +{ + SetMainCallback2(Cb2_StartWallClock); + gMain.field_8 = sub_806A44C; +} -- cgit v1.2.3 From 8c02b87c326e5baf0d8674f359fe3eccff7d3a32 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Wed, 4 Jan 2017 19:51:20 -0800 Subject: use SYS_CLOCK_SET define --- src/clock.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/clock.c') diff --git a/src/clock.c b/src/clock.c index cc0892f34..feefae16c 100644 --- a/src/clock.c +++ b/src/clock.c @@ -21,7 +21,7 @@ void sub_806A328(void); void sub_806A328(void) { - FlagSet(0x835); + FlagSet(SYS_CLOCK_SET); RtcCalcLocalTime(); gSaveBlock2.lastBerryTreeUpdate = gLocalTime; VarSet(0x4040, gLocalTime.days); @@ -29,12 +29,12 @@ void sub_806A328(void) void DoTimeBasedEvents(void) { - if(FlagGet(0x835)) + if (FlagGet(SYS_CLOCK_SET)) { RtcCalcLocalTime(); sub_806A390(&gLocalTime); sub_806A3F4(&gLocalTime); - } + } } void sub_806A390(struct Time *time) @@ -42,7 +42,7 @@ void sub_806A390(struct Time *time) u16 *varPtr = GetVarPointer(0x4040); int days = *varPtr; u16 newDays; - + if(days != time->days && days <= time->days) { newDays = time->days - days; -- cgit v1.2.3 From af4845a4a1db74dfdb3668944fc77e3fb4983052 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Wed, 4 Jan 2017 20:16:15 -0800 Subject: add some vars --- src/clock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/clock.c') diff --git a/src/clock.c b/src/clock.c index feefae16c..cc02dc9a0 100644 --- a/src/clock.c +++ b/src/clock.c @@ -24,7 +24,7 @@ void sub_806A328(void) FlagSet(SYS_CLOCK_SET); RtcCalcLocalTime(); gSaveBlock2.lastBerryTreeUpdate = gLocalTime; - VarSet(0x4040, gLocalTime.days); + VarSet(VAR_DAYS, gLocalTime.days); } void DoTimeBasedEvents(void) @@ -39,7 +39,7 @@ void DoTimeBasedEvents(void) void sub_806A390(struct Time *time) { - u16 *varPtr = GetVarPointer(0x4040); + u16 *varPtr = GetVarPointer(VAR_DAYS); int days = *varPtr; u16 newDays; -- cgit v1.2.3 From 8da8d575bab165f6742c1843e1da98f7924aa6ba Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Thu, 5 Jan 2017 02:49:06 -0800 Subject: name clock functions --- src/clock.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) (limited to 'src/clock.c') diff --git a/src/clock.c b/src/clock.c index cc02dc9a0..997a14c1c 100644 --- a/src/clock.c +++ b/src/clock.c @@ -15,11 +15,12 @@ extern void sub_810D2F4(u16); extern void UpdateBirchState(u16); extern void sub_810F618(u16); -void sub_806A390(struct Time *time); -void sub_806A3F4(struct Time *time); -void sub_806A328(void); +static void InitTimeBasedEvents(void); +static void UpdatePerDay(struct Time *time); +static void UpdatePerSecond(struct Time *time); +static void ReturnFromStartWallClock(void); -void sub_806A328(void) +static void InitTimeBasedEvents(void) { FlagSet(SYS_CLOCK_SET); RtcCalcLocalTime(); @@ -32,18 +33,18 @@ void DoTimeBasedEvents(void) if (FlagGet(SYS_CLOCK_SET)) { RtcCalcLocalTime(); - sub_806A390(&gLocalTime); - sub_806A3F4(&gLocalTime); + UpdatePerDay(&gLocalTime); + UpdatePerSecond(&gLocalTime); } } -void sub_806A390(struct Time *time) +static void UpdatePerDay(struct Time *time) { u16 *varPtr = GetVarPointer(VAR_DAYS); int days = *varPtr; u16 newDays; - if(days != time->days && days <= time->days) + if (days != time->days && days <= time->days) { newDays = time->days - days; ClearUpperFlags(); @@ -59,7 +60,7 @@ void sub_806A390(struct Time *time) } } -void sub_806A3F4(struct Time *time) +static void UpdatePerSecond(struct Time *time) { struct Time newTime; s32 totalSeconds; @@ -68,9 +69,9 @@ void sub_806A3F4(struct Time *time) totalSeconds = 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(totalSeconds != 0) + if (totalSeconds != 0) { - if(totalSeconds >= 0) + if (totalSeconds >= 0) { BerryTreeTimeUpdate(totalSeconds); gSaveBlock2.lastBerryTreeUpdate = *time; @@ -78,14 +79,14 @@ void sub_806A3F4(struct Time *time) } } -void sub_806A44C(void) +static void ReturnFromStartWallClock(void) { - sub_806A328(); + InitTimeBasedEvents(); SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); } -void sub_806A460(void) +void StartWallClock(void) { - SetMainCallback2(Cb2_StartWallClock); - gMain.field_8 = sub_806A44C; + SetMainCallback2(CB2_StartWallClock); + gMain.field_8 = ReturnFromStartWallClock; } -- cgit v1.2.3 From 3dc2f8992446b2fffa0f7da16351e1445856f190 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Thu, 5 Jan 2017 02:53:34 -0800 Subject: field_8 -> savedCallback --- src/clock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/clock.c') diff --git a/src/clock.c b/src/clock.c index 997a14c1c..e660abdd3 100644 --- a/src/clock.c +++ b/src/clock.c @@ -88,5 +88,5 @@ static void ReturnFromStartWallClock(void) void StartWallClock(void) { SetMainCallback2(CB2_StartWallClock); - gMain.field_8 = ReturnFromStartWallClock; + gMain.savedCallback = ReturnFromStartWallClock; } -- cgit v1.2.3 From c9722602cb47eb5b6ecbccddf13df5f286a8ef7b Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Tue, 17 Jan 2017 14:13:04 +0100 Subject: Sort includes --- src/clock.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/clock.c') diff --git a/src/clock.c b/src/clock.c index e660abdd3..85188cd19 100644 --- a/src/clock.c +++ b/src/clock.c @@ -1,10 +1,10 @@ #include "global.h" -#include "main.h" -#include "rtc.h" +#include "berry.h" #include "event_data.h" #include "lottery_corner.h" -#include "berry.h" +#include "main.h" #include "rom4.h" +#include "rtc.h" #include "wallclock.h" extern void sub_80FA220(u16); -- cgit v1.2.3 From 6035511c139549a0291b6b3d43b9b080f792b2b6 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Sat, 18 Mar 2017 04:00:15 +0100 Subject: reorganize and add new headers for many files --- src/clock.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/clock.c') diff --git a/src/clock.c b/src/clock.c index 85188cd19..fd9e6915a 100644 --- a/src/clock.c +++ b/src/clock.c @@ -6,6 +6,7 @@ #include "rom4.h" #include "rtc.h" #include "wallclock.h" +#include "clock.h" extern void sub_80FA220(u16); extern void sub_80BE8C4(u16); -- cgit v1.2.3 From ddc846fa6a0d9a13cfba6f52488a66f6f4562a2d Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Thu, 27 Apr 2017 15:43:31 +0200 Subject: Sort includes --- src/clock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/clock.c') diff --git a/src/clock.c b/src/clock.c index fd9e6915a..ceb140774 100644 --- a/src/clock.c +++ b/src/clock.c @@ -1,4 +1,5 @@ #include "global.h" +#include "clock.h" #include "berry.h" #include "event_data.h" #include "lottery_corner.h" @@ -6,7 +7,6 @@ #include "rom4.h" #include "rtc.h" #include "wallclock.h" -#include "clock.h" extern void sub_80FA220(u16); extern void sub_80BE8C4(u16); -- cgit v1.2.3 From d7284694ec3543b84074f52938ea5e6666e17599 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Thu, 4 May 2017 00:10:25 -0700 Subject: decompile time_events --- src/clock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/clock.c') diff --git a/src/clock.c b/src/clock.c index ceb140774..4ec49807c 100644 --- a/src/clock.c +++ b/src/clock.c @@ -12,7 +12,7 @@ extern void sub_80FA220(u16); extern void sub_80BE8C4(u16); extern void sub_8080834(u16); extern void UpdatePartyPokerusTime(u16); -extern void sub_810D2F4(u16); +extern void UpdateMirageRnd(u16); extern void UpdateBirchState(u16); extern void sub_810F618(u16); @@ -53,7 +53,7 @@ static void UpdatePerDay(struct Time *time) sub_80BE8C4(newDays); sub_8080834(newDays); UpdatePartyPokerusTime(newDays); - sub_810D2F4(newDays); + UpdateMirageRnd(newDays); UpdateBirchState(newDays); sub_810F618(newDays); SetRandomLotteryNumber(newDays); -- cgit v1.2.3 From b7efd72ac411800d709082dab220470544541c90 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Tue, 9 May 2017 19:33:43 -0700 Subject: name daily event functions --- src/clock.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/clock.c') diff --git a/src/clock.c b/src/clock.c index 4ec49807c..48f937989 100644 --- a/src/clock.c +++ b/src/clock.c @@ -8,13 +8,13 @@ #include "rtc.h" #include "wallclock.h" -extern void sub_80FA220(u16); -extern void sub_80BE8C4(u16); -extern void sub_8080834(u16); +extern void UpdateDewfordTrendPerDay(u16); +extern void UpdateTVShowsPerDay(u16); +extern void UpdateWeatherPerDay(u16); extern void UpdatePartyPokerusTime(u16); extern void UpdateMirageRnd(u16); extern void UpdateBirchState(u16); -extern void sub_810F618(u16); +extern void SetShoalItemFlag(u16); static void InitTimeBasedEvents(void); static void UpdatePerDay(struct Time *time); @@ -49,13 +49,13 @@ static void UpdatePerDay(struct Time *time) { newDays = time->days - days; ClearUpperFlags(); - sub_80FA220(newDays); - sub_80BE8C4(newDays); - sub_8080834(newDays); + UpdateDewfordTrendPerDay(newDays); + UpdateTVShowsPerDay(newDays); + UpdateWeatherPerDay(newDays); UpdatePartyPokerusTime(newDays); UpdateMirageRnd(newDays); UpdateBirchState(newDays); - sub_810F618(newDays); + SetShoalItemFlag(newDays); SetRandomLotteryNumber(newDays); *varPtr = time->days; } -- cgit v1.2.3 From 242af849cb56ce0c4469c4e2be82a3ad5dbd3434 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Tue, 9 May 2017 20:39:43 -0700 Subject: minutes, not seconds --- src/clock.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/clock.c') diff --git a/src/clock.c b/src/clock.c index 48f937989..b263e99ae 100644 --- a/src/clock.c +++ b/src/clock.c @@ -18,7 +18,7 @@ extern void SetShoalItemFlag(u16); static void InitTimeBasedEvents(void); static void UpdatePerDay(struct Time *time); -static void UpdatePerSecond(struct Time *time); +static void UpdatePerMinute(struct Time *time); static void ReturnFromStartWallClock(void); static void InitTimeBasedEvents(void) @@ -35,7 +35,7 @@ void DoTimeBasedEvents(void) { RtcCalcLocalTime(); UpdatePerDay(&gLocalTime); - UpdatePerSecond(&gLocalTime); + UpdatePerMinute(&gLocalTime); } } @@ -61,20 +61,20 @@ static void UpdatePerDay(struct Time *time) } } -static void UpdatePerSecond(struct Time *time) +static void UpdatePerMinute(struct Time *time) { struct Time newTime; - s32 totalSeconds; + s32 minutes; CalcTimeDifference(&newTime, &gSaveBlock2.lastBerryTreeUpdate, time); - totalSeconds = 1440 * newTime.days + 60 * newTime.hours + newTime.minutes; + minutes = 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 (totalSeconds != 0) + if (minutes != 0) { - if (totalSeconds >= 0) + if (minutes >= 0) { - BerryTreeTimeUpdate(totalSeconds); + BerryTreeTimeUpdate(minutes); gSaveBlock2.lastBerryTreeUpdate = *time; } } -- cgit v1.2.3 From 4d2b22a899c11dfcacfec6889968ab01655a3fe3 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 26 May 2017 14:53:51 +0200 Subject: Add headers --- src/clock.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'src/clock.c') diff --git a/src/clock.c b/src/clock.c index b263e99ae..669e4cf3c 100644 --- a/src/clock.c +++ b/src/clock.c @@ -1,3 +1,8 @@ +#include "dewford_trend.h" +#include "field_weather.h" +#include "tv.h" +#include "time_events.h" +#include "field_specials.h" #include "global.h" #include "clock.h" #include "berry.h" @@ -8,14 +13,6 @@ #include "rtc.h" #include "wallclock.h" -extern void UpdateDewfordTrendPerDay(u16); -extern void UpdateTVShowsPerDay(u16); -extern void UpdateWeatherPerDay(u16); -extern void UpdatePartyPokerusTime(u16); -extern void UpdateMirageRnd(u16); -extern void UpdateBirchState(u16); -extern void SetShoalItemFlag(u16); - static void InitTimeBasedEvents(void); static void UpdatePerDay(struct Time *time); static void UpdatePerMinute(struct Time *time); -- cgit v1.2.3 From f26daa3d6954d2db3a7c44b79d319a7a084462c2 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Fri, 26 May 2017 15:01:42 +0200 Subject: Sort includes --- src/clock.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/clock.c') diff --git a/src/clock.c b/src/clock.c index 669e4cf3c..1f2aac9fd 100644 --- a/src/clock.c +++ b/src/clock.c @@ -1,16 +1,16 @@ -#include "dewford_trend.h" -#include "field_weather.h" -#include "tv.h" -#include "time_events.h" -#include "field_specials.h" #include "global.h" #include "clock.h" #include "berry.h" +#include "dewford_trend.h" #include "event_data.h" +#include "field_specials.h" +#include "field_weather.h" #include "lottery_corner.h" #include "main.h" #include "rom4.h" #include "rtc.h" +#include "time_events.h" +#include "tv.h" #include "wallclock.h" static void InitTimeBasedEvents(void); -- cgit v1.2.3