aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <mssola@mssola.com>2026-04-05 23:57:16 +0200
committerMiquel Sabaté Solà <mssola@mssola.com>2026-04-05 23:57:16 +0200
commit134c671e18b6617b1ac2417ff4efaa8c6b8fc4b6 (patch)
treee4faa3e422f2421453c482d6a4efb0af5aac98d1 /src
parent193231c11e89bdec2e027a1ea6822281df2bf6bf (diff)
downloadjetpac.nes-134c671e18b6617b1ac2417ff4efaa8c6b8fc4b6.tar.gz
jetpac.nes-134c671e18b6617b1ac2417ff4efaa8c6b8fc4b6.zip
Cancel the take off animation before shuttle change
Just as it was on the original game, if we cleared the stage right before changing the shuttle kind, then we don't go down again. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
Diffstat (limited to 'src')
-rw-r--r--src/driver.s12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/driver.s b/src/driver.s
index 67cba5c..1bcef27 100644
--- a/src/driver.s
+++ b/src/driver.s
@@ -870,14 +870,22 @@
;; Flip the 'D' bit. If doing so results on a zero bit, then we know we
;; are back at the ground and hence we should stop the
- ;; animation. Otherwise we should store the result so we move downwards
- ;; next time.
+ ;; animation.
lda Driver::zp_flags
eor #$02
tax
and #$02
+ beq @over
+
+ ;; If in the next level the shuttle kind will change, then we call off
+ ;; the animation, as it happened in the original game. Otherwise we
+ ;; should store the result so we move downwards next time.
+ lda Globals::zp_level
+ and #$03
+ cmp #$03
bne @set
+ @over:
;; The animation is over. Reset the flags to the expected 'S' one. Not
;; that we care too much about it, but at least we will be consistent
;; with player's death and other scenarios like that.