From 04af7fbd7891b4be883be8231d8fc0ae11a763e7 Mon Sep 17 00:00:00 2001 From: "Juan J. Martinez" Date: Tue, 13 Jun 2023 23:29:50 +0100 Subject: Map renderer --- src/map.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/map.c (limited to 'src/map.c') diff --git a/src/map.c b/src/map.c new file mode 100644 index 0000000..55fc470 --- /dev/null +++ b/src/map.c @@ -0,0 +1,33 @@ +#include + +#include "vga.h" +#include "data.h" + +#include "map.h" + +static const uint8_t *cmap; + +void map_init(const uint8_t map[]) +{ + cmap = map; +} + +void map_render() +{ + const uint8_t *tiles = binary_tiles_start; + Rect src = { 0, 0, 160, 48 }; + Rect dst = { 0, 0, 8, 8 }; + + for (uint8_t y = 0; y < MAP_H; y++) + for (uint8_t x = 0; x < MAP_W; x++) + { + dst.x = x * MAP_TILE_W; + dst.y = y * MAP_TILE_H + MAP_OFFS_Y; + + uint8_t t = cmap[x + y * MAP_W]; + src.x = (t % MAP_TILESET_COLS) * MAP_TILE_W; + src.y = (t / MAP_TILESET_COLS) * MAP_TILE_H; + + blitrc(binary_tiles_start, &src, &dst); + } +} -- cgit v1.2.3