diff options
author | Daniel Harding <33dannye@gmail.com> | 2020-05-16 21:42:24 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-16 21:42:24 -0500 |
commit | 8a924f1f783572ff395f617f99546b4c949c8b04 (patch) | |
tree | 1b6c7de331cb983256651b11b8adf413a3a434f1 /engine/overworld/time.asm | |
parent | 88d7e9a34a8b610b358cec1ccc6660634ca9ce80 (diff) | |
parent | ed94962edf1668aba3f60938e8a5ba8040e2a59c (diff) |
Merge pull request #30 from entrpntr/spring-cleaning
Spring Cleaning
Diffstat (limited to 'engine/overworld/time.asm')
-rwxr-xr-x | engine/overworld/time.asm | 275 |
1 files changed, 146 insertions, 129 deletions
diff --git a/engine/overworld/time.asm b/engine/overworld/time.asm index 01273a75..a829cd4f 100755 --- a/engine/overworld/time.asm +++ b/engine/overworld/time.asm @@ -1,5 +1,5 @@ -InitializeStartDay_: ; 117f1 (4:57f1) - call Function118c9 +_InitializeStartDay: + call InitializeStartDay ret ClearDailyTimers: @@ -9,41 +9,45 @@ ClearDailyTimers: ld [wDailyResetTimer], a ret -InitCallReceiveDelay: +InitCallReceiveDelay:: xor a ld [wTimeCyclesSinceLastCall], a -Function11804: ; 11804 (4:5804) + +NextCallReceiveDelay: ld a, [wTimeCyclesSinceLastCall] - cp $3 - jr c, .asm_1180d - ld a, $3 -.asm_1180d + cp 3 + jr c, .okay + ld a, 3 + +.okay ld e, a - ld d, $0 + ld d, 0 ld hl, .ReceiveCallDelays add hl, de ld a, [hl] - jp Function11849 + jp RestartReceiveCallDelay .ReceiveCallDelays: db 20, 10, 5, 3 CheckReceiveCallTimer: - call Function11857 + call CheckReceiveCallDelay ; check timer ret nc ld hl, wTimeCyclesSinceLastCall ld a, [hl] - cp $3 - jr nc, .asm_11829 + cp 3 + jr nc, .ok inc [hl] -.asm_11829 - call Function11804 + +.ok + call NextCallReceiveDelay ; restart timer scf ret -Function1182e: ; 1182e (4:582e) - ld a, $1 -Function11830: +InitOneDayCountdown: + ld a, 1 + +InitNDaysCountdown: ld [hl], a push hl call UpdateTime @@ -52,17 +56,17 @@ Function11830: call CopyDayToHL ret -Function1183b: ; 1183b (4:583b) +CheckDayDependentEventHL: inc hl push hl call CalcDaysSince - call Function119b4 + call GetDaysSince pop hl dec hl - call Function11972 + call UpdateTimeRemaining ret -Function11849: ; 11849 (4:5849) +RestartReceiveCallDelay: ld hl, wReceiveCallDelay_MinsRemaining ld [hl], a call UpdateTime @@ -70,91 +74,92 @@ Function11849: ; 11849 (4:5849) call CopyDayHourMinToHL ret -Function11857: ; 11857 (4:5857) +CheckReceiveCallDelay: ld hl, wReceiveCallDelay_StartTime call CalcMinsHoursDaysSince - call Function1199a + call GetMinutesSinceIfLessThan60 ld hl, wReceiveCallDelay_MinsRemaining - call Function11972 + call UpdateTimeRemaining ret -asm_11867 +RestartDailyResetTimer: ld hl, wDailyResetTimer - jp Function1182e + jp InitOneDayCountdown -CheckDailyResetTimer: +CheckDailyResetTimer:: ld hl, wDailyResetTimer - call Function1183b + call CheckDayDependentEventHL ret nc xor a - ld hl, wDailyFlags - ld [hli], a - ld [hl], a - jr asm_11867 + ld hl, wDailyFlags1 + ld [hli], a ; wDailyFlags1 + ld [hl], a ; wDailyFlags2 + jr RestartDailyResetTimer StartBugContestTimer: - ld a, 20 + ld a, BUG_CONTEST_MINUTES ld [wBugContestMinsRemaining], a - ld a, 0 + ld a, BUG_CONTEST_SECONDS ld [wBugContestSecsRemaining], a call UpdateTime ld hl, wBugContestStartTime call CopyDayHourMinSecToHL ret -CheckBugContestTimer: +CheckBugContestTimer:: ld hl, wBugContestStartTime call CalcSecsMinsHoursDaysSince ld a, [wDaysSince] and a - jr nz, .asm_118c0 + jr nz, .timed_out ld a, [wHoursSince] and a - jr nz, .asm_118c0 - ld a, [wSecsSince] + jr nz, .timed_out + ld a, [wSecondsSince] ld b, a ld a, [wBugContestSecsRemaining] sub b - jr nc, .asm_118ae + jr nc, .okay add 60 -.asm_118ae + +.okay ld [wBugContestSecsRemaining], a - ld a, [wMinsSince] + ld a, [wMinutesSince] ld b, a ld a, [wBugContestMinsRemaining] sbc b ld [wBugContestMinsRemaining], a - jr c, .asm_118c0 + jr c, .timed_out and a ret -.asm_118c0 +.timed_out xor a ld [wBugContestMinsRemaining], a ld [wBugContestSecsRemaining], a scf ret -Function118c9: ; 118c9 (4:58c9) +InitializeStartDay: call UpdateTime - ld hl, wStartDay + ld hl, wTimerEventStartDay call CopyDayToHL ret -CheckPokerusTick: - ld hl, wStartDay +CheckPokerusTick:: + ld hl, wTimerEventStartDay call CalcDaysSince - call Function119b4 + call GetDaysSince and a - jr z, .asm_118e6 + jr z, .done ; not even a day has passed since game start ld b, a - farcall ApplyPokerusTick ; same bank -.asm_118e6 + farcall ApplyPokerusTick +.done xor a ret SetUnusedTwoDayTimer: - ld a, $2 + ld a, 2 ld hl, wUnusedTwoDayTimer ld [hl], a call UpdateTime @@ -162,63 +167,69 @@ SetUnusedTwoDayTimer: call CopyDayToHL ret -Function118f8: ; 118f8 (4:58f8) +CheckUnusedTwoDayTimer: ld hl, wUnusedTwoDayTimerStartDate call CalcDaysSince - call Function119b4 + call GetDaysSince ld hl, wUnusedTwoDayTimer - call Function11972 + call UpdateTimeRemaining ret - ld hl, wDailyFlags - set 2, [hl] +; unused + ld hl, wDailyFlags1 + set DAILYFLAGS1_SWARM_F, [hl] ret +; unused and a - ld hl, wDailyFlags - bit 2, [hl] + ld hl, wDailyFlags1 + bit DAILYFLAGS1_SWARM_F, [hl] ret nz scf ret -Function11917: ; 11917 (4:5917) - call Function11920 +RestartLuckyNumberCountdown: + call .GetDaysUntilNextFriday ld hl, wLuckyNumberDayBuffer - jp Function11830 + jp InitNDaysCountdown -Function11920: ; 11920 (4:5920) +.GetDaysUntilNextFriday: call GetWeekday ld c, a - ld a, $5 + ld a, FRIDAY sub c - jr z, .asm_1192b - jr nc, .asm_1192d -.asm_1192b - add $7 -.asm_1192d + jr z, .friday_saturday + jr nc, .earlier ; could have done "ret nc" + +.friday_saturday + add 7 + +.earlier ret -Function1192e: ; 1192e (4:592e) +_CheckLuckyNumberShowFlag: ld hl, wLuckyNumberDayBuffer - jp Function1183b + jp CheckDayDependentEventHL -Function11934: ; 11934 (4:5934) +DoMysteryGiftIfDayHasPassed: ld a, BANK(sMysteryGiftTimer) call OpenSRAM ld hl, sMysteryGiftTimer ld a, [hli] - ld [wCurHPAnimMaxHP], a + ld [wBuffer1], a ld a, [hl] ld [wBuffer2], a call CloseSRAM - ld hl, wCurHPAnimMaxHP - call Function1183b - jr nc, .asm_1195e - ld hl, wCurHPAnimMaxHP - call Function1182e + + ld hl, wBuffer1 + call CheckDayDependentEventHL + jr nc, .not_timed_out + ld hl, wBuffer1 + call InitOneDayCountdown call CloseSRAM farcall Function2a4f6 -.asm_1195e + +.not_timed_out ld a, BANK(sMysteryGiftTimer) call OpenSRAM ld hl, wBuffer1 @@ -229,21 +240,24 @@ Function11934: ; 11934 (4:5934) call CloseSRAM ret -Function11972: ; 11972 (4:5972) - cp $ff - jr z, .asm_11981 +UpdateTimeRemaining: +; If the amount of time elapsed exceeds the capacity of its +; unit, skip this part. + cp -1 + jr z, .set_carry ld c, a - ld a, [hl] + ld a, [hl] ; time remaining sub c - jr nc, .asm_1197c + jr nc, .ok xor a -.asm_1197c + +.ok ld [hl], a - jr z, .asm_11981 + jr z, .set_carry xor a ret -.asm_11981 +.set_carry xor a ld [hl], a scf @@ -252,100 +266,103 @@ Function11972: ; 11972 (4:5972) GetSecondsSinceIfLessThan60: ld a, [wDaysSince] and a - jr nz, asm_119b8 + jr nz, GetTimeElapsed_ExceedsUnitLimit ld a, [wHoursSince] and a - jr nz, asm_119b8 - ld a, [wMinsSince] - jr nz, asm_119b8 - ld a, [wSecsSince] + jr nz, GetTimeElapsed_ExceedsUnitLimit + ld a, [wMinutesSince] + jr nz, GetTimeElapsed_ExceedsUnitLimit + ld a, [wSecondsSince] ret -Function1199a: ; 1199a (4:599a) +GetMinutesSinceIfLessThan60: ld a, [wDaysSince] and a - jr nz, asm_119b8 + jr nz, GetTimeElapsed_ExceedsUnitLimit ld a, [wHoursSince] and a - jr nz, asm_119b8 - ld a, [wMinsSince] + jr nz, GetTimeElapsed_ExceedsUnitLimit + ld a, [wMinutesSince] ret GetHoursSinceIfLessThan24: ld a, [wDaysSince] and a - jr nz, asm_119b8 + jr nz, GetTimeElapsed_ExceedsUnitLimit ld a, [wHoursSince] ret -Function119b4: ; 119b4 (4:59b4) +GetDaysSince: ld a, [wDaysSince] ret -asm_119b8 - ld a, $ff +GetTimeElapsed_ExceedsUnitLimit: + ld a, -1 ret -CalcDaysSince: ; 119bb (4:59bb) +CalcDaysSince: xor a - jr CalcDaysSince_ + jr _CalcDaysSince CalcHoursDaysSince: inc hl xor a - jr CalcHoursDaysSince_ + jr _CalcHoursDaysSince -CalcMinsHoursDaysSince: ; 119c2 (4:59c2) +CalcMinsHoursDaysSince: inc hl inc hl xor a - jr CalcMinsHoursDaysSince_ + jr _CalcMinsHoursDaysSince -CalcSecsMinsHoursDaysSince: ; 119c7 (4:59c7) +CalcSecsMinsHoursDaysSince: inc hl inc hl inc hl ldh a, [hSeconds] ld c, a sub [hl] - jr nc, .asm_119d2 + jr nc, .skip add 60 -.asm_119d2 - ld [hl], c +.skip + ld [hl], c ; current seconds dec hl - ld [wSecsSince], a -CalcMinsHoursDaysSince_ + ld [wSecondsSince], a ; seconds since + +_CalcMinsHoursDaysSince: ldh a, [hMinutes] ld c, a sbc [hl] - jr nc, .asm_119df + jr nc, .skip add 60 -.asm_119df - ld [hl], c +.skip + ld [hl], c ; current minutes dec hl - ld [wMinsSince], a -CalcHoursDaysSince_ + ld [wMinutesSince], a ; minutes since + +_CalcHoursDaysSince: ldh a, [hHours] ld c, a sbc [hl] - jr nc, .asm_119ec + jr nc, .skip add 24 -.asm_119ec - ld [hl], c +.skip + ld [hl], c ; current hours dec hl - ld [wHoursSince], a -CalcDaysSince_: + ld [wHoursSince], a ; hours since + +_CalcDaysSince: ld a, [wCurDay] ld c, a sbc [hl] - jr nc, .asm_119fa + jr nc, .skip add 20 * 7 -.asm_119fa - ld [hl], c - ld [wDaysSince], a +.skip + ld [hl], c ; current days + ld [wDaysSince], a ; days since ret -CopyDayHourMinSecToHL: ; 119ff (4:59ff) +CopyDayHourMinSecToHL: ld a, [wCurDay] ld [hli], a ldh a, [hHours] @@ -356,7 +373,7 @@ CopyDayHourMinSecToHL: ; 119ff (4:59ff) ld [hli], a ret -CopyDayToHL: ; 11a0d (4:5a0d) +CopyDayToHL: ld a, [wCurDay] ld [hl], a ret @@ -368,7 +385,7 @@ CopyDayHourToHL: ld [hli], a ret -CopyDayHourMinToHL: ; 11a1a (4:5a1a) +CopyDayHourMinToHL: ld a, [wCurDay] ld [hli], a ldh a, [hHours] |