From 134c671e18b6617b1ac2417ff4efaa8c6b8fc4b6 Mon Sep 17 00:00:00 2001 From: Miquel Sabaté Solà Date: Sun, 5 Apr 2026 23:57:16 +0200 Subject: Cancel the take off animation before shuttle change MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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à --- src/driver.s | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/driver.s') 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. -- cgit v1.2.3