From f72311bb17833d3a4d417c469cdcc45a6e250b6c Mon Sep 17 00:00:00 2001 From: Raimon Zamora Date: Tue, 18 Nov 2025 17:50:53 +0100 Subject: [PATCH] - [FIX] ficava el color incorrecte de background - [NEW] el fondo no usat ara pinta el color de borde --- source/main.cpp | 2 +- source/tilemap.cpp | 19 ++++++++++++++++--- source/tilemap.h | 1 + 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/source/main.cpp b/source/main.cpp index 2e839bc..d0ecf53 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -40,7 +40,7 @@ void loadRoom(std::string room_file) } tilemap::set(tiles); tilemap::setBackground(aux::getColorByName(room["room"]["bgColor"].get_value())); - + tilemap::setBorder(aux::getColorByName(room["room"]["border"].get_value())); //fkyaml::node name_node = room["room"]["name"]; //printf("%s\n", name_node.get_value().c_str()); } diff --git a/source/tilemap.cpp b/source/tilemap.cpp index 66356aa..8359f84 100644 --- a/source/tilemap.cpp +++ b/source/tilemap.cpp @@ -6,6 +6,7 @@ namespace tilemap { uint16_t tiles[16*32]; uint32_t back_color = 0xff000000; + uint32_t border_color = 0xff000000; SDL_Texture *tileset; SDL_Texture *map; uint32_t paleta[16] = { @@ -23,7 +24,7 @@ namespace tilemap void start() { draw::setClip(200,48,draw::getWindowSize().x-400, draw::getWindowSize().y-48); - draw::setColor(0xff000000); + draw::setColor(border_color); draw::fillrect(200,48,draw::getWindowSize().x-400, draw::getWindowSize().y-48); } @@ -42,9 +43,8 @@ namespace tilemap draw::resetClip(); } - void set(uint16_t *tiles) + void rebuild() { - memcpy(tilemap::tiles, tiles, 32*16*2); draw::setDestination(map); draw::setSource(tileset); draw::cls(back_color); @@ -58,9 +58,22 @@ namespace tilemap draw::setDestination(nullptr); } + void set(uint16_t *tiles) + { + memcpy(tilemap::tiles, tiles, 32*16*2); + rebuild(); + } + void setBackground(int color) { back_color = paleta[color]; + rebuild(); + } + + void setBorder(int color) + { + border_color = paleta[color]; + rebuild(); } } diff --git a/source/tilemap.h b/source/tilemap.h index 26f5e62..c049048 100644 --- a/source/tilemap.h +++ b/source/tilemap.h @@ -11,4 +11,5 @@ namespace tilemap void set(uint16_t *tiles); void setBackground(int color); + void setBorder(int color); }