From b9a256db9a5bdcb9d2f9000b3f72c17ccdf153d6 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 30 Jun 2017 16:41:35 -0700 Subject: Move ball saver routines into respective files --- engine/pinball_game/ball_saver/ball_saver_20.asm | 12 +++++ engine/pinball_game/ball_saver/ball_saver_30.asm | 12 +++++ engine/pinball_game/ball_saver/ball_saver_60.asm | 12 +++++ engine/pinball_game/ball_saver/ball_saver_90.asm | 12 +++++ .../ball_saver/ball_saver_catchem_mode.asm | 51 ++++++++++++++++++++++ 5 files changed, 99 insertions(+) create mode 100755 engine/pinball_game/ball_saver/ball_saver_20.asm create mode 100755 engine/pinball_game/ball_saver/ball_saver_30.asm create mode 100755 engine/pinball_game/ball_saver/ball_saver_60.asm create mode 100755 engine/pinball_game/ball_saver/ball_saver_90.asm create mode 100755 engine/pinball_game/ball_saver/ball_saver_catchem_mode.asm (limited to 'engine') 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 -- cgit v1.2.3