From c055eeef6d41269d11b2ddf7f9aba6f8867da65d Mon Sep 17 00:00:00 2001 From: Nikita Kostovsky Date: Tue, 23 Dec 2025 15:28:05 +0100 Subject: initial commit --- core/src/cpp/map.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 core/src/cpp/map.cpp (limited to 'core/src/cpp/map.cpp') diff --git a/core/src/cpp/map.cpp b/core/src/cpp/map.cpp new file mode 100644 index 0000000..06548e3 --- /dev/null +++ b/core/src/cpp/map.cpp @@ -0,0 +1,43 @@ +#include "map.h" + +#include + +Map::Map(SDL_Renderer* renderer) + : renderer{renderer} + , textures{renderer, "ground.bmp", 128} +{ + // +1 for the null terminated string + assert(sizeof(level) == size.w * size.h + 1); + + size2d window_size{0, 0}; + + if (!SDL_GetRendererOutputSize(renderer, &window_size.w, &window_size.h)) + { + tile_size = window_size / size; + } + else + { + std::cerr << "Failed to get renderer size: " << SDL_GetError() + << std::endl; + } +} + +void Map::draw() +{ + for (int j = 0; j < size.h; j++) + { + for (int i = 0; i < size.w; i++) + { + if (is_empty(i, j)) + { + continue; + } + + SDL_Rect dst = + {tile_size.w * i, tile_size.h * j, tile_size.w, tile_size.h}; + SDL_Rect src = textures.rect(get(i, j)); + + SDL_RenderCopy(renderer, textures.texture, &src, &dst); + } + } +} -- cgit v1.2.3-70-g09d2