diff options
Diffstat (limited to 'engine')
-rwxr-xr-x | engine/pinball_game/ball_saver/ball_saver_20.asm | 12 | ||||
-rwxr-xr-x | engine/pinball_game/ball_saver/ball_saver_30.asm | 12 | ||||
-rwxr-xr-x | engine/pinball_game/ball_saver/ball_saver_60.asm | 12 | ||||
-rwxr-xr-x | engine/pinball_game/ball_saver/ball_saver_90.asm | 12 | ||||
-rwxr-xr-x | engine/pinball_game/ball_saver/ball_saver_catchem_mode.asm | 51 |
5 files changed, 99 insertions, 0 deletions
diff --git a/engine/pinball_game/ball_saver/ball_saver_20.asm b/engine/pinball_game/ball_saver/ball_saver_20.asm new file mode 100755 index 0000000..db4c55b --- /dev/null +++ b/engine/pinball_game/ball_saver/ball_saver_20.asm @@ -0,0 +1,12 @@ +Start20SecondSaverTimer: ; 0xdbba
+ ld a, $1
+ ld [wBallSaverIconOn], a
+ ld a, $ff
+ ld [wd4a2], a
+ ld a, 59
+ ld [wBallSaverTimerFrames], a
+ ld a, 20
+ ld [wBallSaverTimerSeconds], a
+ ld a, $2
+ ld [wNumTimesBallSavedTextWillDisplay], a
+ ret
diff --git a/engine/pinball_game/ball_saver/ball_saver_30.asm b/engine/pinball_game/ball_saver/ball_saver_30.asm new file mode 100755 index 0000000..be1dda9 --- /dev/null +++ b/engine/pinball_game/ball_saver/ball_saver_30.asm @@ -0,0 +1,12 @@ +Start30SecondSaverTimer: ; 0xef35
+ ld a, $0
+ ld [wBallSaverIconOn], a
+ ld a, $ff
+ ld [wd4a2], a
+ ld a, 59
+ ld [wBallSaverTimerFrames], a
+ ld a, 30
+ ld [wBallSaverTimerSeconds], a
+ ld a, $2
+ ld [wNumTimesBallSavedTextWillDisplay], a
+ ret
diff --git a/engine/pinball_game/ball_saver/ball_saver_60.asm b/engine/pinball_game/ball_saver/ball_saver_60.asm new file mode 100755 index 0000000..9b6b5ef --- /dev/null +++ b/engine/pinball_game/ball_saver/ball_saver_60.asm @@ -0,0 +1,12 @@ +Start60SecondSaverTimer: ; 0xef4f
+ ld a, $0
+ ld [wBallSaverIconOn], a
+ ld a, $ff
+ ld [wd4a2], a
+ ld a, 59
+ ld [wBallSaverTimerFrames], a
+ ld a, 60
+ ld [wBallSaverTimerSeconds], a
+ ld a, $2
+ ld [wNumTimesBallSavedTextWillDisplay], a
+ ret
diff --git a/engine/pinball_game/ball_saver/ball_saver_90.asm b/engine/pinball_game/ball_saver/ball_saver_90.asm new file mode 100755 index 0000000..7acda2c --- /dev/null +++ b/engine/pinball_game/ball_saver/ball_saver_90.asm @@ -0,0 +1,12 @@ +Start90SecondSaverTimer: ; 0xef69
+ ld a, $0
+ ld [wBallSaverIconOn], a
+ ld a, $ff
+ ld [wd4a2], a
+ ld a, 59
+ ld [wBallSaverTimerFrames], a
+ ld a, 90
+ ld [wBallSaverTimerSeconds], a
+ ld a, $2
+ ld [wNumTimesBallSavedTextWillDisplay], a
+ ret
diff --git a/engine/pinball_game/ball_saver/ball_saver_catchem_mode.asm b/engine/pinball_game/ball_saver/ball_saver_catchem_mode.asm new file mode 100755 index 0000000..ac6c163 --- /dev/null +++ b/engine/pinball_game/ball_saver/ball_saver_catchem_mode.asm @@ -0,0 +1,51 @@ +InitBallSaverForCatchEmMode: ; 0xdbd4
+ ld a, [wBallSaverTimerFrames]
+ ld [wBallSaverTimerFramesBackup], a
+ ld a, [wBallSaverTimerSeconds]
+ ld [wBallSaverTimerSecondsBackup], a
+ ld a, [wNumTimesBallSavedTextWillDisplay]
+ ld [wd4a8], a
+ ld a, $0
+ ld [wBallSaverIconOn], a
+ ld a, $ff
+ ld [wd4a2], a
+ ld a, 59
+ ld [wBallSaverTimerFrames], a
+ ld a, 60
+ ld [wBallSaverTimerSeconds], a
+ ld a, $ff
+ ld [wNumTimesBallSavedTextWillDisplay], a
+ ret
+
+RestoreBallSaverAfterCatchEmMode: ; 0xdc00
+ ld a, [wBallSaverTimerFramesBackup]
+ ld [wBallSaverTimerFrames], a
+ ld a, [wBallSaverTimerSecondsBackup]
+ ld [wBallSaverTimerSeconds], a
+ ld a, [wd4a8]
+ ld [wNumTimesBallSavedTextWillDisplay], a
+ ld a, [wBallSaverTimerSeconds]
+ and a
+ jr z, .asm_dc1a
+ ld a, $1
+.asm_dc1a
+ ld [wBallSaverIconOn], a
+ ld a, [wBallSaverTimerSeconds]
+ ld c, $0
+ cp $2
+ jr c, .asm_dc34
+ ld c, $4
+ cp $6
+ jr c, .asm_dc34
+ ld c, $10
+ cp $b
+ jr c, .asm_dc34
+ ld c, $ff
+.asm_dc34
+ ld a, c
+ ld [wd4a2], a
+ ld a, [wCurrentStage]
+ bit 0, a
+ ret z
+ callba Func_14707
+ ret
|