diff options
| author | Gene Pasquet <dev@etenil.net> | 2025-11-21 05:11:08 +0000 |
|---|---|---|
| committer | Gene Pasquet <dev@etenil.net> | 2025-11-21 05:20:15 +0000 |
| commit | b8c88dd712cba2f7cef6b277d7c36b12eb5f154a (patch) | |
| tree | 27717392353b6a2b4c30ad799cb3d8d1778841bd /src | |
| parent | 09113c1f5d9d344f683bdf09ac12a5198ded194e (diff) | |
render multiple map layers
Diffstat (limited to 'src')
| -rw-r--r-- | src/game.scm | 20 |
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)) |
