#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); } } }