aboutsummaryrefslogtreecommitdiff
path: root/engine.scm
diff options
context:
space:
mode:
authorGene Pasquet <dev@etenil.net>2026-04-12 15:57:45 +0100
committerGene Pasquet <dev@etenil.net>2026-04-12 15:57:45 +0100
commitc1c868d9b6ee61002c7ccb33fbc6a15c5b090e6a (patch)
treeb818607a0e2ab52113e3fcead77a096b9adfdbfb /engine.scm
parente1da1b0c2b2df9880e7f0a76b6ecc7aefecaf229 (diff)
Enrich entities pipelining to provide scene context to processors
Diffstat (limited to 'engine.scm')
-rw-r--r--engine.scm25
1 files changed, 14 insertions, 11 deletions
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")