diff --git a/source/japi/draw.cpp b/source/japi/draw.cpp index 4128a62..8b3001b 100644 --- a/source/japi/draw.cpp +++ b/source/japi/draw.cpp @@ -564,6 +564,22 @@ namespace draw } } + void draw(const int dx, const int dy, const int w, const int h, const int sx, const int sy, const int zoom) + { + // Si no hi ha superficie d'oritge especificada, no fem res, o petarà el mame + if (source == nullptr) return; + + for (int y=0; y rooms; int full_map_x = 0, full_map_y = 0; + draw::surface *map_surface {nullptr}; static const char *paletteMap[] = { "black", "bright_black", "blue", "bright_blue", @@ -284,6 +285,10 @@ namespace rooms detectFullMapOffset("01", 0, 0); full_map_x++; full_map_y++; + + if (map_surface) draw::freeSurface(map_surface); + map_surface = draw::createSurface(256,128); + /*for (auto &item : rooms) { room_t &room = item.second; @@ -295,17 +300,23 @@ namespace rooms std::cout << std::endl; } }*/ + room_t &room = rooms["01"]; + for (int y=0; y<16; ++y) { + for (int x=0; x<32; ++x) + std::cout << std::to_string(room.tiles[x][y]) << ","; + std::cout << std::endl; + } } void draw() { - room_t &room = rooms["02"]; - - draw::cls(room.border); - draw::setViewport(32, 24, 256, 128); - draw::cls(room.bgColor); + room_t &room = rooms["01"]; + draw::setTrans(16); + draw::setDestination(map_surface); + draw::resetViewport(); draw::setSource(room.tileSetFile); + draw::cls(room.bgColor); for (int y=0; y<16; ++y) { for (int x=0; x<32; ++x) { @@ -317,6 +328,7 @@ namespace rooms } } + draw::setTrans(0); for (auto enemy : room.enemies) { enemies::enemy_t &anim = enemies::get(enemy.animation); @@ -327,10 +339,18 @@ namespace rooms draw::restorecol(1); } + draw::setTrans(16); + draw::setDestination(nullptr); + draw::setSource(map_surface); + draw::cls(COLOR_BRIGHT_BLACK); + draw::color(room.border); + draw::fillrect(48, 32, 512+32, 256+32); + draw::setViewport(64, 48, 512, 256); + draw::draw(0, 0, 256, 128, 0, 0, 2); draw::resetViewport(); - draw::setSource(room.thumbnail); - draw::draw(); + //draw::setSource(room.thumbnail); + //draw::draw(); } void drawFullMap()