diff options
Diffstat (limited to 'src/game.scm')
| -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)) |
