summaryrefslogtreecommitdiff
path: root/engine/time.asm
diff options
context:
space:
mode:
authorJimB16 <f1@jimb.de>2015-10-26 03:26:53 +0100
committerJimB16 <f1@jimb.de>2015-10-26 03:26:53 +0100
commit9a9cb38e39c991e102a1c6da7e8e16b2a1c61e07 (patch)
tree46c064628b3d8015da22d6396b3c711e80646745 /engine/time.asm
parent3b9a3cc3bee8934e45f5e4d3fd9704b3fa619560 (diff)
parent0d17d4a75866d053f5e0b48c66deb2508071d98b (diff)
merge with newest update
Diffstat (limited to 'engine/time.asm')
-rwxr-xr-xengine/time.asm342
1 files changed, 174 insertions, 168 deletions
diff --git a/engine/time.asm b/engine/time.asm
index 8b3f5d758..fce01ffac 100755
--- a/engine/time.asm
+++ b/engine/time.asm
@@ -1,104 +1,104 @@
-Function113d6: ; 113d6
- call Function114dd
+_InitializeStartDay: ; 113d6
+ call InitializeStartDay
ret
; 113da
-Function113da: ; 113da
+ClearDailyTimers: ; 113da
xor a
ld [wLuckyNumberDayBuffer], a
- ld [wdc3a], a
- ld [wdc1c], a
+ ld [wUnusedTwoDayTimer], a
+ ld [wDailyResetTimer], a
ret
; 113e5
-Function113e5:: ; 113e5
+InitCallReceiveDelay:: ; 113e5
xor a
- ld [wd464], a
+ ld [wTimeCyclesSinceLastCall], a
-Function113e9: ; 113e9
- ld a, [wd464]
+NextCallReceiveDelay: ; 113e9
+ ld a, [wTimeCyclesSinceLastCall]
cp 3
- jr c, .asm_113f2
+ jr c, .okay
ld a, 3
-.asm_113f2
+.okay
ld e, a
ld d, 0
- ld hl, .data_113fd
+ ld hl, .ReceiveCallDelays
add hl, de
ld a, [hl]
- jp Function1142e
+ jp RestartReceiveCallDelay
; 113fd
-.data_113fd
+.ReceiveCallDelays
db 20, 10, 5, 3
; 11401
-Function11401: ; 11401
- call Function1143c
+CheckReceiveCallTimer: ; 11401
+ call CheckReceiveCallDelay ; check timer
ret nc
- ld hl, wd464
+ ld hl, wTimeCyclesSinceLastCall
ld a, [hl]
cp 3
- jr nc, .asm_1140e
+ jr nc, .ok
inc [hl]
-.asm_1140e
- call Function113e9
+.ok
+ call NextCallReceiveDelay ; restart timer
scf
ret
; 11413
-Function11413: ; 11413
+InitOneDayCountdown: ; 11413
ld a, 1
-Function11415: ; 11415
+InitNDaysCountdown: ; 11415
ld [hl], a
push hl
call UpdateTime
pop hl
inc hl
- call Function11621
+ call CopyDayToHL
ret
; 11420
-Function11420: ; 11420
+CheckDayDependentEventHL: ; 11420
inc hl
push hl
- call Function115cf
- call Function115c8
+ call CalcDaysSince
+ call GetDaysSince
pop hl
dec hl
- call Function11586
+ call UpdateTimeRemaining
ret
; 1142e
-Function1142e: ; 1142e
- ld hl, wd465
+RestartReceiveCallDelay: ; 1142e
+ ld hl, wReceiveCallDelay_MinsRemaining
ld [hl], a
call UpdateTime
- ld hl, wd466
- call Function1162e
+ ld hl, wReceiveCallDelay_StartTime
+ call CopyDayHourMinToHL
ret
; 1143c
-Function1143c: ; 1143c
- ld hl, wd466
- call Function115d6
- call Function115ae
- ld hl, wd465
- call Function11586
+CheckReceiveCallDelay: ; 1143c
+ ld hl, wReceiveCallDelay_StartTime
+ call CalcMinsHoursDaysSince
+ call GetMinutesSinceIfLessThan60
+ ld hl, wReceiveCallDelay_MinsRemaining
+ call UpdateTimeRemaining
ret
; 1144c
-Function1144c: ; 1144c
- ld hl, wdc1c
- jp Function11413
+RestartDailyResetTimer: ; 1144c
+ ld hl, wDailyResetTimer
+ jp InitOneDayCountdown
; 11452
-Function11452:: ; 11452
- ld hl, wdc1c
- call Function11420
+CheckDailyResetTimer:: ; 11452
+ ld hl, wDailyResetTimer
+ call CheckDayDependentEventHL
ret nc
xor a
ld hl, DailyFlags
@@ -121,18 +121,19 @@ endr
ld hl, wdc58
ld a, [hl]
and a
- jr z, .asm_11480
+ jr z, .RestartKenjiBreakCountdown
dec [hl]
- jr nz, .asm_11483
+ jr nz, .DontRestartKenjiBreakCountdown
-.asm_11480
- call Function11485
+.RestartKenjiBreakCountdown
+ call Special_SampleKenjiBreakCountdown
-.asm_11483
- jr Function1144c
+.DontRestartKenjiBreakCountdown
+ jr RestartDailyResetTimer
; 11485
-Function11485: ; 11485
+Special_SampleKenjiBreakCountdown: ; 11485
+; Generate a random number between 3 and 5
call Random
and 3
add 3
@@ -140,99 +141,101 @@ Function11485: ; 11485
ret
; 11490
-Function11490: ; 11490
- ld a, $14
- ld [wd46c], a
- ld a, $0
- ld [wd46d], a
+StartBugContestTimer: ; 11490
+ ld a, 20
+ ld [wBugContestMinsRemaining], a
+ ld a, 0
+ ld [wBugContestSecsRemaining], a
call UpdateTime
- ld hl, wdc35
- call Function11613
+ ld hl, wBugContestStartTime
+ call CopyDayHourMinSecToHL
ret
; 114a4
-Function114a4:: ; 114a4 (4:54a4)
- ld hl, wdc35
- call Function115db
- ld a, [wcfd7]
+CheckBugContestTimer:: ; 114a4 (4:54a4)
+ ld hl, wBugContestStartTime
+ call CalcSecsMinsHoursDaysSince
+ ld a, [wDaysSince]
and a
- jr nz, .asm_114d4
- ld a, [wcfd6]
+ jr nz, .timed_out
+ ld a, [wHoursSince]
and a
- jr nz, .asm_114d4
- ld a, [wcfd4]
+ jr nz, .timed_out
+ ld a, [wSecondsSince]
ld b, a
- ld a, [wd46d]
+ ld a, [wBugContestSecsRemaining]
sub b
- jr nc, .asm_114c2
- add $3c
-.asm_114c2
- ld [wd46d], a
- ld a, [wcfd5]
+ jr nc, .okay
+ add 60
+
+.okay
+ ld [wBugContestSecsRemaining], a
+ ld a, [wMinutesSince]
ld b, a
- ld a, [wd46c]
+ ld a, [wBugContestMinsRemaining]
sbc b
- ld [wd46c], a
- jr c, .asm_114d4
+ ld [wBugContestMinsRemaining], a
+ jr c, .timed_out
and a
ret
-.asm_114d4
+
+.timed_out
xor a
- ld [wd46c], a
- ld [wd46d], a
+ ld [wBugContestMinsRemaining], a
+ ld [wBugContestSecsRemaining], a
scf
ret
-Function114dd: ; 114dd
+InitializeStartDay: ; 114dd
call UpdateTime
- ld hl, wdc23
- call Function11621
+ ld hl, wStartDay
+ call CopyDayToHL
ret
; 114e7
-Function114e7:: ; 114e7
- ld hl, wdc23
- call Function115cf
- call Function115c8
+CheckPokerusTrick:: ; 114e7
+ ld hl, wStartDay
+ call CalcDaysSince
+ call GetDaysSince
and a
- jr z, .asm_114fa
+ jr z, .done
ld b, a
callba ApplyPokerusTick
-.asm_114fa
+.done
xor a
ret
; 114fc
-Function114fc: ; 114fc
- ld a, $2
- ld hl, wdc3a
+SetUnusedTwoDayTimer: ; 114fc
+ ld a, 2
+ ld hl, wUnusedTwoDayTimer
ld [hl], a
call UpdateTime
- ld hl, wdc3b
- call Function11621
+ ld hl, wUnusedTwoDayTimerStartDate
+ call CopyDayToHL
ret
; 1150c
-Function1150c: ; 1150c
- ld hl, wdc3b
- call Function115cf
- call Function115c8
- ld hl, wdc3a
- call Function11586
+CheckUnusedTwoDayTimer: ; 1150c
+ ld hl, wUnusedTwoDayTimerStartDate
+ call CalcDaysSince
+ call GetDaysSince
+ ld hl, wUnusedTwoDayTimer
+ call UpdateTimeRemaining
ret
; 1151c
-Function1151c: ; 1151c
+Function1151c: ; unreferenced
ld hl, DailyFlags
set 2, [hl]
ret
; 11522
-Function11522: ; 11522
+Function11522: ; unreferenced
and a
ld hl, DailyFlags
bit 2, [hl]
@@ -241,10 +244,10 @@ Function11522: ; 11522
ret
; 1152b
-Function1152b: ; 1152b
+RestartLuckyNumberCountdown: ; 1152b
call .GetDaysUntilNextFriday
ld hl, wLuckyNumberDayBuffer
- jp Function11415
+ jp InitNDaysCountdown
; 11534
.GetDaysUntilNextFriday: ; 11534
@@ -262,172 +265,175 @@ Function1152b: ; 1152b
ret
; 11542
-Function11542: ; 11542
+CheckLuckyNumberShowFlag: ; 11542
ld hl, wLuckyNumberDayBuffer
- jp Function11420
+ jp CheckDayDependentEventHL
; 11548
-Function11548: ; 11548
- ld a, BANK(s0_abfa)
+DoMysteryGiftIfDayHasPassed: ; 11548
+ ld a, BANK(sMysteryGiftTimer)
call GetSRAMBank
- ld hl, s0_abfa
+ ld hl, sMysteryGiftTimer
ld a, [hli]
ld [Buffer1], a
ld a, [hl]
ld [Buffer2], a
call CloseSRAM
+
ld hl, Buffer1
- call Function11420
- jr nc, .asm_11572
+ call CheckDayDependentEventHL
+ jr nc, .not_timed_out
ld hl, Buffer1
- call Function11413
+ call InitOneDayCountdown
call CloseSRAM
callba Function1050c8
-.asm_11572
- ld a, BANK(s0_abfa)
+.not_timed_out
+ ld a, BANK(sMysteryGiftTimer)
call GetSRAMBank
ld hl, Buffer1
ld a, [hli]
- ld [s0_abfa], a
+ ld [sMysteryGiftTimer], a
ld a, [hl]
- ld [s0_abfa + 1], a
+ ld [sMysteryGiftTimer + 1], a
call CloseSRAM
ret
; 11586
-Function11586: ; 11586
+UpdateTimeRemaining: ; 11586
+; If the amount of time elapsed exceeds the capacity of its
+; unit, skip this part.
cp -1
- jr z, .skip
+ jr z, .set_carry
ld c, a
- ld a, [hl]
+ ld a, [hl] ; time remaining
sub c
jr nc, .ok
xor a
.ok
ld [hl], a
- jr z, .skip
+ jr z, .set_carry
xor a
ret
-.skip
+.set_carry
xor a
ld [hl], a
scf
ret
; 11599
-Function11599: ; 11599
- ld a, [wcfd7]
+GetSecondsSinceIfLessThan60: ; 11599
+ ld a, [wDaysSince]
and a
- jr nz, Function115cc
- ld a, [wcfd6]
+ jr nz, GetTimeElapsed_ExceedsUnitLimit
+ ld a, [wHoursSince]
and a
- jr nz, Function115cc
- ld a, [wcfd5]
- jr nz, Function115cc
- ld a, [wcfd4]
+ jr nz, GetTimeElapsed_ExceedsUnitLimit
+ ld a, [wMinutesSince]
+ jr nz, GetTimeElapsed_ExceedsUnitLimit
+ ld a, [wSecondsSince]
ret
; 115ae
-Function115ae: ; 115ae
- ld a, [wcfd7]
+GetMinutesSinceIfLessThan60: ; 115ae
+ ld a, [wDaysSince]
and a
- jr nz, Function115cc
- ld a, [wcfd6]
+ jr nz, GetTimeElapsed_ExceedsUnitLimit
+ ld a, [wHoursSince]
and a
- jr nz, Function115cc
- ld a, [wcfd5]
+ jr nz, GetTimeElapsed_ExceedsUnitLimit
+ ld a, [wMinutesSince]
ret
; 115be
-Function115be: ; 115be
- ld a, [wcfd7]
+GetHoursSinceIfLessThan24: ; 115be
+ ld a, [wDaysSince]
and a
- jr nz, Function115cc
- ld a, [wcfd6]
+ jr nz, GetTimeElapsed_ExceedsUnitLimit
+ ld a, [wHoursSince]
ret
; 115c8
-Function115c8: ; 115c8
- ld a, [wcfd7]
+GetDaysSince: ; 115c8
+ ld a, [wDaysSince]
ret
; 115cc
-Function115cc: ; 115cc
- ld a, $ff
+GetTimeElapsed_ExceedsUnitLimit: ; 115cc
+ ld a, -1
ret
; 115cf
-Function115cf: ; 115cf
+CalcDaysSince: ; 115cf
xor a
- jr Function11605
+ jr _CalcDaysSince
; 115d2
-Function115d2: ; 115d2
+CalcHoursDaysSince: ; 115d2
inc hl
xor a
- jr Function115f8
+ jr _CalcHoursDaysSince
; 115d6
-Function115d6: ; 115d6
+CalcMinsHoursDaysSince: ; 115d6
rept 2
inc hl
endr
xor a
- jr Function115eb
+ jr _CalcMinsHoursDaysSince
; 115db
-Function115db: ; 115db
+CalcSecsMinsHoursDaysSince: ; 115db
rept 3
inc hl
endr
ld a, [hSeconds]
ld c, a
sub [hl]
- jr nc, .asm_115e6
+ jr nc, .skip
add 60
-.asm_115e6
- ld [hl], c
+.skip
+ ld [hl], c ; current seconds
dec hl
- ld [wcfd4], a
+ ld [wSecondsSince], a ; seconds since
-Function115eb: ; 115eb
+_CalcMinsHoursDaysSince: ; 115eb
ld a, [hMinutes]
ld c, a
sbc [hl]
- jr nc, .asm_115f3
+ jr nc, .skip
add 60
-.asm_115f3
- ld [hl], c
+.skip
+ ld [hl], c ; current minutes
dec hl
- ld [wcfd5], a
+ ld [wMinutesSince], a ; minutes since
-Function115f8: ; 115f8
+_CalcHoursDaysSince: ; 115f8
ld a, [hHours]
ld c, a
sbc [hl]
- jr nc, .asm_11600
+ jr nc, .skip
add 24
-.asm_11600
- ld [hl], c
+.skip
+ ld [hl], c ; current hours
dec hl
- ld [wcfd6], a
+ ld [wHoursSince], a ; hours since
-Function11605
+_CalcDaysSince:
ld a, [CurDay]
ld c, a
sbc [hl]
jr nc, .skip
add 20 * 7
.skip
- ld [hl], c
- ld [wcfd7], a
+ ld [hl], c ; current days
+ ld [wDaysSince], a ; days since
ret
; 11613
-Function11613: ; 11613
+CopyDayHourMinSecToHL: ; 11613
ld a, [CurDay]
ld [hli], a
ld a, [hHours]
@@ -439,13 +445,13 @@ Function11613: ; 11613
ret
; 11621
-Function11621: ; 11621
+CopyDayToHL: ; 11621
ld a, [CurDay]
ld [hl], a
ret
; 11626
-Function11626: ; 11626
+CopyDayHourToHL: ; 11626
ld a, [CurDay]
ld [hli], a
ld a, [hHours]
@@ -453,7 +459,7 @@ Function11626: ; 11626
ret
; 1162e
-Function1162e: ; 1162e
+CopyDayHourMinToHL: ; 1162e
ld a, [CurDay]
ld [hli], a
ld a, [hHours]