summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2025-09-06 18:21:43 -0700
committer3gg <3gg@shellblade.net>2025-09-06 18:21:43 -0700
commit2c5e621cdaef674fb6c812d8937598575784db63 (patch)
tree57977d3e73c4add8f9fb428e112fc1b25ce1abb8 /src
parent41ee3fe4ae76d9bba450f58a09c4edde1493672d (diff)
Add preliminary support for multiple layers in ortho maps
Diffstat (limited to 'src')
-rw-r--r--src/gfx2d.c25
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}