diff options
Diffstat (limited to 'engine.scm')
| -rw-r--r-- | engine.scm | 11 |
1 files changed, 5 insertions, 6 deletions
@@ -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)) |
