diff options
Diffstat (limited to 'src/gfx2d.c')
-rw-r--r-- | src/gfx2d.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/gfx2d.c b/src/gfx2d.c index e79dd3e..14e0539 100644 --- a/src/gfx2d.c +++ b/src/gfx2d.c | |||
@@ -651,18 +651,19 @@ static void draw_map_ortho(Gfx2d* gfx) { | |||
651 | assert(gfx); | 651 | assert(gfx); |
652 | assert(gfx->map); | 652 | assert(gfx->map); |
653 | 653 | ||
654 | // TODO: Handle multiple layers. | 654 | for (uint16_t l = 0; l < gfx->map->num_layers; ++l) { |
655 | const Tm_Layer* layer = tm_map_get_layer(gfx->map, 0); | 655 | const Tm_Layer* layer = tm_map_get_layer(gfx->map, l); |
656 | 656 | ||
657 | // TODO: This currently renders with tile granularity. Do so instead in terms | 657 | // TODO: This currently renders with tile granularity. Do so instead in |
658 | // of pixels for more accurate camera panning. The camera coordinates are | 658 | // terms of pixels for more accurate camera panning. The camera coordinates |
659 | // already given in pixels. | 659 | // are already given in pixels. |
660 | for (int wy = gfx->camera.y / gfx->map->base_tile_height; | 660 | for (int wy = gfx->camera.y / gfx->map->base_tile_height; |
661 | wy < gfx->map->world_height; ++wy) { | 661 | wy < gfx->map->world_height; ++wy) { |
662 | for (int wx = gfx->camera.x / gfx->map->base_tile_width; | 662 | for (int wx = gfx->camera.x / gfx->map->base_tile_width; |
663 | wx < gfx->map->world_width; ++wx) { | 663 | wx < gfx->map->world_width; ++wx) { |
664 | const Tile tile = tm_layer_get_tile(gfx->map, layer, wx, wy); | 664 | const Tile tile = tm_layer_get_tile(gfx->map, layer, wx, wy); |
665 | draw_tile_ortho(gfx, tile, wx, wy); | 665 | draw_tile_ortho(gfx, tile, wx, wy); |
666 | } | ||
666 | } | 667 | } |
667 | } | 668 | } |
668 | } | 669 | } |