aboutsummaryrefslogtreecommitdiff
path: root/engine.scm
diff options
context:
space:
mode:
Diffstat (limited to 'engine.scm')
-rw-r--r--engine.scm11
1 files changed, 5 insertions, 6 deletions
diff --git a/engine.scm b/engine.scm
index faa0909..31ddbfc 100644
--- a/engine.scm
+++ b/engine.scm
@@ -2,7 +2,6 @@
(import scheme
(chicken base)
- (chicken keyword)
(prefix sdl2 "sdl2:")
(prefix sdl2-ttf "ttf:")
(prefix sdl2-image "img:")
@@ -110,15 +109,15 @@
;; ── Named scene states ────────────────────────────────────────────────────
-;; Construct a state plist with lifecycle hooks.
+;; Construct a state alist with lifecycle hooks.
(define (make-game-state #!key (create #f) (update #f) (render #f))
- (list #:create create #:update update #:render render))
+ `((#:create . ,create) (#:update . ,update) (#:render . ,render)))
-;; Retrieve a value from a state plist.
+;; Retrieve a value from a state alist.
(define (state-hook state key)
- (get-keyword key state (lambda () #f)))
+ (cond ((assq key state) => cdr) (else #f)))
-;; Register a named state. name is a symbol; state is a make-game-state plist.
+;; Register a named state. name is a symbol; state is a make-game-state alist.
(define (game-add-state! game name state)
(hash-table-set! (game-states game) name state))