aboutsummaryrefslogtreecommitdiff
path: root/engine.scm
diff options
context:
space:
mode:
authorGene Pasquet <dev@etenil.net>2026-04-17 16:30:34 +0100
committerGene Pasquet <dev@etenil.net>2026-04-17 16:30:34 +0100
commit8251c85a4a588504d38a2fad05e4b0fe1cdccb9d (patch)
treec3fcedb7331caf798f2355c7549b35aa3aaf6ac8 /engine.scm
parent5de3b9cf122542f2a0c1c906c8ce8add20e5c8c6 (diff)
Convert entities to alists
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))