diff options
| author | Gene Pasquet <dev@etenil.net> | 2026-04-17 16:30:34 +0100 |
|---|---|---|
| committer | Gene Pasquet <dev@etenil.net> | 2026-04-17 16:30:34 +0100 |
| commit | 8251c85a4a588504d38a2fad05e4b0fe1cdccb9d (patch) | |
| tree | c3fcedb7331caf798f2355c7549b35aa3aaf6ac8 /engine.scm | |
| parent | 5de3b9cf122542f2a0c1c906c8ce8add20e5c8c6 (diff) | |
Convert entities to alists
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)) |
