From 8251c85a4a588504d38a2fad05e4b0fe1cdccb9d Mon Sep 17 00:00:00 2001 From: Gene Pasquet Date: Fri, 17 Apr 2026 16:30:34 +0100 Subject: Convert entities to alists --- engine.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'engine.scm') 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)) -- cgit v1.2.3