From 1a9b07beea46e610801c7b2e0f2db188b3c4bdf1 Mon Sep 17 00:00:00 2001 From: Gene Pasquet Date: Sun, 5 Apr 2026 17:02:33 +0100 Subject: fix: engine.scm defstruct naming, add game-camera test, add simple-logger import --- engine.scm | 7 ++++--- tests/engine-test.scm | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/engine.scm b/engine.scm index 5526e6c..f6c9db7 100644 --- a/engine.scm +++ b/engine.scm @@ -28,10 +28,11 @@ render-hook ;; (lambda (game) ...) — post-render overlay scene) ;; current scene struct; #f until create: runs -;; Store the auto-generated constructor -(define make-game-raw make-game) +;; Store the auto-generated constructor as make-game* +(define make-game* make-game) ;; ── Public constructor wrapper ───────────────────────────────────────────── +;; Wraps the auto-generated make-game (renamed to make-game*) with default values (define (make-game #!key (title "Downstroke Game") @@ -39,7 +40,7 @@ (frame-delay 16) (input-config *default-input-config*) (preload #f) (create #f) (update #f) (render #f)) - (make-game-raw + (make-game* title: title width: width height: height diff --git a/tests/engine-test.scm b/tests/engine-test.scm index 56b9a04..b026ce4 100644 --- a/tests/engine-test.scm +++ b/tests/engine-test.scm @@ -74,7 +74,8 @@ (defstruct scene entities tilemap camera tileset-texture)) (import downstroke/world) -;; --- Assets module (real) --- +;; --- Real deps --- +(import simple-logger) ;; required by input.scm (include "assets.scm") (import downstroke/assets) @@ -154,4 +155,16 @@ (test-assert "update hook is stored" (procedure? (game-update-hook g))))) +(test-group "game-camera" + (let* ((cam (make-camera x: 10 y: 20)) + (scene (make-scene entities: '() + tilemap: #f + camera: cam + tileset-texture: #f)) + (g (make-game))) + (game-scene-set! g scene) + (test-equal "returns scene camera" + cam + (game-camera g)))) + (test-end "engine") -- cgit v1.2.3