summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
Diffstat (limited to 'main.asm')
-rw-r--r--main.asm132
1 files changed, 1 insertions, 131 deletions
diff --git a/main.asm b/main.asm
index 6a62bf337..ee86f5d72 100644
--- a/main.asm
+++ b/main.asm
@@ -515,137 +515,7 @@ AskSerial: ; 2063
; 208a
-ResetGameTime: ; 208a
- xor a
- ld [GameTimeCap], a
- ld [GameTimeHours], a
- ld [GameTimeHours + 1], a
- ld [GameTimeMinutes], a
- ld [GameTimeSeconds], a
- ld [GameTimeFrames], a
- ret
-; 209e
-
-
-GameTimer: ; 209e
-
- nop
-
- ld a, [rSVBK]
- push af
- ld a, 1
- ld [rSVBK], a
-
- call UpdateGameTimer
-
- pop af
- ld [rSVBK], a
- ret
-; 20ad
-
-
-UpdateGameTimer: ; 20ad
-; Increment the game timer by one frame.
-; The game timer is capped at 999:59:59.00.
-
-
-; Don't update if game logic is paused.
- ld a, [$c2cd]
- and a
- ret nz
-
-; Is the timer paused?
- ld hl, GameTimerPause
- bit 0, [hl]
- ret z
-
-; Is the timer already capped?
- ld hl, GameTimeCap
- bit 0, [hl]
- ret nz
-
-
-; +1 frame
- ld hl, GameTimeFrames
- ld a, [hl]
- inc a
-
- cp 60 ; frames/second
- jr nc, .second
-
- ld [hl], a
- ret
-
-
-.second
- xor a
- ld [hl], a
-
-; +1 second
- ld hl, GameTimeSeconds
- ld a, [hl]
- inc a
-
- cp 60 ; seconds/minute
- jr nc, .minute
-
- ld [hl], a
- ret
-
-
-.minute
- xor a
- ld [hl], a
-
-; +1 minute
- ld hl, GameTimeMinutes
- ld a, [hl]
- inc a
-
- cp 60 ; minutes/hour
- jr nc, .hour
-
- ld [hl], a
- ret
-
-
-.hour
- xor a
- ld [hl], a
-
-; +1 hour
- ld a, [GameTimeHours]
- ld h, a
- ld a, [GameTimeHours + 1]
- ld l, a
- inc hl
-
-
-; Cap the timer after 1000 hours.
- ld a, h
- cp 1000 / $100
- jr c, .ok
-
- ld a, l
- cp 1000 % $100
- jr c, .ok
-
- ld hl, GameTimeCap
- set 0, [hl]
-
- ld a, 59 ; 999:59:59.00
- ld [GameTimeMinutes], a
- ld [GameTimeSeconds], a
- ret
-
-
-.ok
- ld a, h
- ld [GameTimeHours], a
- ld a, l
- ld [GameTimeHours + 1], a
- ret
-; 210f
+INCLUDE "engine/game_time.asm"
Function210f: ; 210f