aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGene Pasquet <dev@etenil.net>2025-11-21 05:11:08 +0000
committerGene Pasquet <dev@etenil.net>2025-11-21 05:20:15 +0000
commitb8c88dd712cba2f7cef6b277d7c36b12eb5f154a (patch)
tree27717392353b6a2b4c30ad799cb3d8d1778841bd /src
parent09113c1f5d9d344f683bdf09ac12a5198ded194e (diff)
render multiple map layers
Diffstat (limited to 'src')
-rw-r--r--src/game.scm20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/game.scm b/src/game.scm
index 4206533..bdabbf1 100644
--- a/src/game.scm
+++ b/src/game.scm
@@ -71,18 +71,22 @@
(define (draw-tilemap-rows draw-fn rows row-num)
(unless (null? rows)
- (for-each (lambda (tile-id col-num) (draw-fn tile-id row-num col-num))
- (car rows)
- (iota (length (car rows))))
+ (for-each
+ (cut draw-fn <> row-num <>)
+ (car rows)
+ (iota (length (car rows))))
(draw-tilemap-rows draw-fn (cdr rows) (+ row-num 1))))
(define (draw-tilemap renderer tilemap)
- (let ((map-layer (layer-map (car (tilemap-layers tilemap))))
+ (let ((map-layers (tilemap-layers tilemap))
(tileset (tilemap-tileset tilemap)))
- (draw-tilemap-rows
- (lambda (tile-id row-num col-num) (draw-tile renderer tileset tile-id row-num col-num))
- map-layer
- 0)))
+ (for-each
+ (lambda (layer)
+ (draw-tilemap-rows
+ (cut draw-tile renderer tileset <> <> <>)
+ (layer-map layer)
+ 0))
+ map-layers)))
(define (draw-objects renderer tilemap)
(let ((objects (tilemap-objects tilemap))