From a9575c5aa6edbf7a23026c1609c4e2e77469abc1 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 26 May 2024 20:51:13 -0400 Subject: [PATCH] Fix bug where instructions pop-in during reset fade-out. --- game.scm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/game.scm b/game.scm index 1479332..9fe57bc 100644 --- a/game.scm +++ b/game.scm @@ -223,26 +223,30 @@ ;; are collected? (when (with-goblins ($ (level-actor *level*) 'gem-collected?)) (set! *gems* (cons *level-idx* *gems*))) - (set! *level-idx* idx) (if (< idx (vector-length levels)) (begin - (save-game!) (run-script (lambda () (set! *state* 'interstitial) (yield (lambda (k) (show-effect! (make-fade-out+in-effect 1.0 k)))) + (set! *level-idx* idx) + (save-game!) (load-level! idx)))) (begin (run-script (lambda () - (set! *level-idx* 0) - (save-game!) (set! *state* 'interstitial) (yield (lambda (k) (show-effect! (make-fade-out+in-effect 2.0 k)))) + (set! *level-idx* 0) + (save-game!) + ;; HACK: To keep the intro level's control explanation + ;; text from showing up when resetting the game, set + ;; level idx to non-zero during the credits. + (set! *level-idx* -1) (load-credits!))))))) ;; Auto-save/load to local storage. @@ -267,12 +271,11 @@ (define (reset-game!) (run-script (lambda () - (set! *level-idx* 0) - (save-game!) (set! *state* 'interstitial) (yield (lambda (k) (show-effect! (make-fade-out+in-effect 2.0 k)))) + (set! *level-idx* 0) (load-level! 0)))) (define (emit-pickup-particles x y)