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)