From c1c868d9b6ee61002c7ccb33fbc6a15c5b090e6a Mon Sep 17 00:00:00 2001 From: Gene Pasquet Date: Sun, 12 Apr 2026 15:57:45 +0100 Subject: Enrich entities pipelining to provide scene context to processors --- engine.scm | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'engine.scm') diff --git a/engine.scm b/engine.scm index 95d33b9..faa0909 100644 --- a/engine.scm +++ b/engine.scm @@ -7,6 +7,7 @@ (prefix sdl2-ttf "ttf:") (prefix sdl2-image "img:") (srfi 69) + (only srfi-197 chain) defstruct downstroke-world downstroke-input @@ -49,17 +50,19 @@ (define (default-engine-update game dt) (let ((scene (game-scene game))) (when scene - (let* ((scene (scene-map-entities scene (cut step-tweens <> scene dt))) - (scene (scene-map-entities scene (cut apply-acceleration <> scene dt))) - (scene (scene-map-entities scene (cut apply-gravity <> scene dt))) - (scene (scene-map-entities scene (cut apply-velocity-x <> scene dt))) - (scene (scene-map-entities scene (cut resolve-tile-collisions-x <> scene dt))) - (scene (scene-map-entities scene (cut apply-velocity-y <> scene dt))) - (scene (scene-map-entities scene (cut resolve-tile-collisions-y <> scene dt))) - (scene (scene-map-entities scene (cut detect-on-solid <> scene dt))) - (scene (scene-transform-entities scene resolve-entity-collisions)) - (scene (scene-transform-entities scene sync-groups))) - (game-scene-set! game scene))))) + (game-scene-set! + game + (chain scene + (scene-map-entities _ (cut step-tweens <> <> dt)) + (scene-map-entities _ (cut apply-acceleration <> <> dt)) + (scene-map-entities _ (cut apply-gravity <> <> dt)) + (scene-map-entities _ (cut apply-velocity-x <> <> dt)) + (scene-map-entities _ (cut resolve-tile-collisions-x <> <> dt)) + (scene-map-entities _ (cut apply-velocity-y <> <> dt)) + (scene-map-entities _ (cut resolve-tile-collisions-y <> <> dt)) + (scene-map-entities _ (cut detect-on-solid <> <> dt)) + (scene-transform-entities _ resolve-entity-collisions) + (scene-transform-entities _ sync-groups)))))) (define (make-game #!key (title "Downstroke Game") -- cgit v1.2.3