From a36378f98cd51a2e513f1574555d2f25364ffe81 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Mon, 7 Nov 2022 19:13:58 +0100 Subject: [PATCH] Trabajando en la recarga de recursos --- data/ending/ending1.png | Bin 1845 -> 1615 bytes data/ending/ending1_zxarne.png | Bin 0 -> 1838 bytes data/ending/ending2_zxarne.png | Bin 0 -> 4424 bytes data/ending/ending3_zxarne.png | Bin 0 -> 4345 bytes data/ending/ending4.png | Bin 1595 -> 1607 bytes data/ending/ending4_zxarne.png | Bin 0 -> 1781 bytes data/ending/ending5.png | Bin 2335 -> 2123 bytes data/ending/ending5_zxarne.png | Bin 0 -> 2403 bytes data/title/loading_screen_bn.png | Bin 4815 -> 4829 bytes data/title/loading_screen_color.png | Bin 7009 -> 6424 bytes source/common/resource.cpp | 65 +++++++++++++++++++++++----- source/common/resource.h | 20 +++++++-- source/game.cpp | 2 +- source/room.cpp | 44 +++++++++---------- source/room.h | 2 +- 15 files changed, 95 insertions(+), 38 deletions(-) create mode 100644 data/ending/ending1_zxarne.png create mode 100644 data/ending/ending2_zxarne.png create mode 100644 data/ending/ending3_zxarne.png create mode 100644 data/ending/ending4_zxarne.png create mode 100644 data/ending/ending5_zxarne.png diff --git a/data/ending/ending1.png b/data/ending/ending1.png index 39df179ac3023e5149c3de0eea16e5e9d80ff675..d3c6470cc4cce320992993d94597d987c5bfab91 100644 GIT binary patch delta 1585 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 literal 0 HcmV?d00001 diff --git a/data/ending/ending2_zxarne.png b/data/ending/ending2_zxarne.png new file mode 100644 index 0000000000000000000000000000000000000000..ba44af15b82ab6959bcce4cc8a1807c961c49ba6 GIT binary patch literal 4424 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.lRY*-`d{AyT4CIY^D-6knQEeeBVccb?kE*JQ zd3RpC77(N+m(>abXot}(GK1P$O{ms7dV6$LE{j`7sf$}uD-7qZF6~*285|V(yAMq! zJB2jFk8m{`@|EhjDU7D4l#Uq44(_U&C3jOle}9j%j=KXKD+aDUam~btB9I;26^Yzd zF;X~o60{%M){%0JEfQHs@6;SEcO`C1el*NF3VGIA2Oz!=>6<5|;jZ`v7=;qCh}7|F zinvCg?E+A4lWRvP1XCWl2iyF3CuB!Gr>dEhs7UGo& z`G1P~Ua9SQL^~4+*VvoiV=V;uo^%O{rmL#CmU{AgyoKbTXto>NN>atw$WP5eX55FQ z6oWFNiyK1WV6@aFz03*TVEJAWzn;v5!UO6zzmGxff z*Kw`x3a9{b90$(xgmbRyZP}bg+^L6P`rv4|oxX-$JnLk|%ahC@8)|0lNei#~>Y9YYs21Bn~F* z1XGzPeeLHVO?N^quS83`#Ky>ggaAf$);J)7q2;cC=3bV(fo~b>DxKQFLiqONDBWYf z1N-O2H$zil^he47|Mg=V~zLkWQFk4}JqJQbCNL@g< z>l)#{c$-5oR>_}QWY9Y1RZ_Qw5EOr(4wO4R>;&UGYOHM?Bo*Hm`)s&Yn?mWWXfJ@< z0sQl&hCv@x)=Nz5%hju)@N0VV~(@o%h*vx>1mIG7$cmV%=R zrWV8`7-NBi*3x4!F*rKq^MCJuQfM&6c>e@GA z7%{HtPxV7EfDW7;xdx_CS7{-sQVD(<2LHGrd4I(+gxX cy+Ah8UtddssI^n7asU7T07*qoM6N<$f~uSS5C8xG delta 1566 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 bM+E!>f{Ju&-x9QD00000NkvXXu0mjf#=Hg{ delta 2310 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 Z3B+-?p>MCB`Uo7Fp}vV;k*;I-{{XUkUBLhV diff --git a/data/title/loading_screen_color.png b/data/title/loading_screen_color.png index 92c55f80be2e1b4be70f38258fb3b56ecffa76ef..aa7e97aa78f0f9f14441b8b1a65cb086bf8bca91 100644 GIT binary patch literal 6424 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 literal 7009 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 X$+6-%g7o}PL3?n| list) } } +// Vuelve a cargar las texturas +void Resource::reLoadTextures() +{ + for (auto texture : textures) + { + texture.texture->reLoad(); + } +} + // Carga las animaciones desde una lista void Resource::loadAnimations(std::vector list) { @@ -50,6 +59,21 @@ void Resource::loadAnimations(std::vector list) } } +// Vuelve a cargar las animaciones +void Resource::reLoadAnimations() +{ + reLoadTextures(); + + for (auto a:animations) + { + // Extrae el nombre del fichero sin la extension para crear el nombre del fichero de la textura + const size_t lastIndex = a.name.find_last_of("."); + const std::string pngFile = a.name.substr(0, lastIndex) + ".png"; + delete a.animation; + a.animation = new animatedSprite_t(loadAnimationFromFile(getTexture(pngFile), asset->get(a.name), options->console)); + } +} + // Carga los offsets desde una lista void Resource::loadOffsets(std::vector list) { @@ -62,6 +86,16 @@ void Resource::loadOffsets(std::vector list) } } +// Vuelve a cargar los offsets +void Resource::reLoadOffsets() +{ + for (auto o:offsets) + { + delete o.textFile; + o.textFile = new textFile_t(LoadTextFile(asset->get(o.name), options->console)); + } +} + // Carga los mapas de tiles desde una lista void Resource::loadTileMaps(std::vector list) { @@ -74,6 +108,16 @@ void Resource::loadTileMaps(std::vector list) } } +// Vuelve a cargar los mapas de tiles +void Resource::reLoadTileMaps() +{ + for (auto tm:tileMaps) + { + delete tm.tileMap; + tm.tileMap = new std::vector(loadRoomTileFile(asset->get(tm.name), options->console)); + } +} + // Carga las habitaciones desde una lista void Resource::loadRooms(std::vector list) { @@ -97,18 +141,11 @@ void Resource::loadRooms(std::vector list) } } -// Recarga las texturas -void Resource::reLoadTextures() -{ - for (auto texture : textures) - { - texture.texture->reLoad(); - } -} - -// Recarga las habitaciones +// Vuelve a cargar las habitaciones void Resource::reLoadRooms() { + reLoadTileMaps(); + for (auto r : rooms) { delete r.room; @@ -127,6 +164,14 @@ void Resource::reLoadRooms() } } +// Vuelve a cargar todos los recursos +void Resource::reLoad() +{ + reLoadAnimations(); + reLoadOffsets(); + reLoadRooms(); +} + // Libera las texturas void Resource::freeTextures() { diff --git a/source/common/resource.h b/source/common/resource.h index 691d49e..8772af6 100644 --- a/source/common/resource.h +++ b/source/common/resource.h @@ -66,24 +66,36 @@ public: // Carga las texturas de una lista void loadTextures(std::vector list); + // Vuelve a cargar las texturas + void reLoadTextures(); + // Carga las animaciones desde una lista void loadAnimations(std::vector list); + // Vuelve a cargar las animaciones + void reLoadAnimations(); + // Carga los offsets desde una lista void loadOffsets(std::vector list); + // Vuelve a cargar los offsets + void reLoadOffsets(); + // Carga los mapas de tiles desde una lista void loadTileMaps(std::vector list); + // Vuelve a cargar los mapas de tiles + void reLoadTileMaps(); + // Carga las habitaciones desde una lista void loadRooms(std::vector list); - // Recarga las texturas - void reLoadTextures(); - - // Recarga las habitaciones + // Vuelve a cargar las habitaciones void reLoadRooms(); + // Vuelve a cargar todos los recursos + void reLoad(); + // Libera las texturas void freeTextures(); diff --git a/source/game.cpp b/source/game.cpp index b98b734..17780cc 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -101,7 +101,7 @@ void Game::checkEventHandler() break; case SDL_SCANCODE_R: - resource->reLoadRooms(); + resource->reLoad(); break; case SDL_SCANCODE_M: diff --git a/source/room.cpp b/source/room.cpp index acb3792..fb03f2b 100644 --- a/source/room.cpp +++ b/source/room.cpp @@ -402,7 +402,7 @@ Room::Room(room_t *room, SDL_Renderer *renderer, Screen *screen, Asset *asset, o autoSurfaceDirection = room->autoSurfaceDirection; textureA = room->textureA; textureB = room->textureB; - tileMap = room->tileMap; + tileMap = *room->tileMap; texture = (options->palette == p_zxspectrum) ? textureA : textureB; this->jailEnabled = jailEnabled; @@ -533,13 +533,13 @@ void Room::fillMapTexture() // Al cargar el mapa en memoria, se resta uno, por tanto los tiles vacios son -1 // Tampoco hay que dibujar los tiles animados que estan en la fila 19 (indices) const int index = (y * mapWidth) + x; - const bool a = (tileMap->at(index) >= 18 * tileSetWidth) && (tileMap->at(index) < 19 * tileSetWidth); - const bool b = tileMap->at(index) > -1; + const bool a = (tileMap.at(index) >= 18 * tileSetWidth) && (tileMap.at(index) < 19 * tileSetWidth); + const bool b = tileMap.at(index) > -1; if (b && !a) { - clip.x = (tileMap->at(index) % tileSetWidth) * tileSize; - clip.y = (tileMap->at(index) / tileSetWidth) * tileSize; + clip.x = (tileMap.at(index) % tileSetWidth) * tileSize; + clip.y = (tileMap.at(index) / tileSetWidth) * tileSize; texture->render(renderer, x * tileSize, y * tileSize, &clip); // **** @@ -739,37 +739,37 @@ tile_e Room::getTile(int index) if (index < maxTile) { // Las filas 0-8 son de tiles t_wall - if ((tileMap->at(index) >= 0) && (tileMap->at(index) < 9 * tileSetWidth)) + if ((tileMap.at(index) >= 0) && (tileMap.at(index) < 9 * tileSetWidth)) { return t_wall; } // Las filas 9-17 son de tiles t_passable - else if ((tileMap->at(index) >= 9 * tileSetWidth) && (tileMap->at(index) < 18 * tileSetWidth)) + else if ((tileMap.at(index) >= 9 * tileSetWidth) && (tileMap.at(index) < 18 * tileSetWidth)) { return t_passable; } // Las filas 18-20 es de tiles t_animated - else if ((tileMap->at(index) >= 18 * tileSetWidth) && (tileMap->at(index) < 21 * tileSetWidth)) + else if ((tileMap.at(index) >= 18 * tileSetWidth) && (tileMap.at(index) < 21 * tileSetWidth)) { return t_animated; } // La fila 21 es de tiles t_slope_r - else if ((tileMap->at(index) >= 21 * tileSetWidth) && (tileMap->at(index) < 22 * tileSetWidth)) + else if ((tileMap.at(index) >= 21 * tileSetWidth) && (tileMap.at(index) < 22 * tileSetWidth)) { return t_slope_r; } // La fila 22 es de tiles t_slope_l - else if ((tileMap->at(index) >= 22 * tileSetWidth) && (tileMap->at(index) < 23 * tileSetWidth)) + else if ((tileMap.at(index) >= 22 * tileSetWidth) && (tileMap.at(index) < 23 * tileSetWidth)) { return t_slope_l; } // La fila 23 es de tiles t_kill - else if ((tileMap->at(index) >= 23 * tileSetWidth) && (tileMap->at(index) < 24 * tileSetWidth)) + else if ((tileMap.at(index) >= 23 * tileSetWidth) && (tileMap.at(index) < 24 * tileSetWidth)) { return t_kill; } @@ -897,7 +897,7 @@ void Room::setBottomSurfaces() // Busca todos los tiles de tipo muro que no tengan debajo otro muro // Hay que recorrer la habitación por filas (excepto los de la última fila) - for (int i = 0; i < (int)tileMap->size() - mapWidth; ++i) + for (int i = 0; i < (int)tileMap.size() - mapWidth; ++i) { if (getTile(i) == t_wall && getTile(i + mapWidth) != t_wall) { @@ -960,7 +960,7 @@ void Room::setTopSurfaces() // Busca todos los tiles de tipo muro o pasable que no tengan encima un muro // Hay que recorrer la habitación por filas (excepto los de la primera fila) - for (int i = mapWidth; i < (int)tileMap->size(); ++i) + for (int i = mapWidth; i < (int)tileMap.size(); ++i) { if ((getTile(i) == t_wall || getTile(i) == t_passable) && getTile(i - mapWidth) != t_wall) { @@ -1117,7 +1117,7 @@ void Room::setLeftSlopes() { // Recorre la habitación entera por filas buscando tiles de tipo t_slope_l std::vector found; - for (int i = 0; i < (int)tileMap->size(); ++i) + for (int i = 0; i < (int)tileMap.size(); ++i) { if (getTile(i) == t_slope_l) { @@ -1158,7 +1158,7 @@ void Room::setRightSlopes() { // Recorre la habitación entera por filas buscando tiles de tipo t_slope_r std::vector found; - for (int i = 0; i < (int)tileMap->size(); ++i) + for (int i = 0; i < (int)tileMap.size(); ++i) { if (getTile(i) == t_slope_r) { @@ -1201,7 +1201,7 @@ void Room::setAutoSurfaces() // Busca todos los tiles de tipo animado // Hay que recorrer la habitación por filas (excepto los de la primera fila) - for (int i = mapWidth; i < (int)tileMap->size(); ++i) + for (int i = mapWidth; i < (int)tileMap.size(); ++i) { if (getTile(i) == t_animated) { @@ -1258,7 +1258,7 @@ void Room::setAutoSurfaces() void Room::setAnimatedTiles() { // Recorre la habitación entera por filas buscando tiles de tipo t_animated - for (int i = 0; i < (int)tileMap->size(); ++i) + for (int i = 0; i < (int)tileMap.size(); ++i) { if (getTile(i) == t_animated) { @@ -1266,9 +1266,9 @@ void Room::setAnimatedTiles() const int x = (i % mapWidth) * tileSize; const int y = (i / mapWidth) * tileSize; - // TileMap->at(i) es el tile a poner - const int xc = (tileMap->at(i) % tileSetWidth) * tileSize; - const int yc = (tileMap->at(i) / tileSetWidth) * tileSize; + // TileMap.at(i) es el tile a poner + const int xc = (tileMap.at(i) % tileSetWidth) * tileSize; + const int yc = (tileMap.at(i) / tileSetWidth) * tileSize; aTile_t at; at.sprite = new Sprite(x, y, 8, 8, texture, renderer); @@ -1499,7 +1499,7 @@ void Room::openTheJail() // Abre las puertas const int tileA = 16 + (13 * 32); const int tileB = 16 + (14 * 32); - tileMap->at(tileA) = -1; - tileMap->at(tileB) = -1; + tileMap.at(tileA) = -1; + tileMap.at(tileB) = -1; } } \ No newline at end of file diff --git a/source/room.h b/source/room.h index c93e23e..b2637dc 100644 --- a/source/room.h +++ b/source/room.h @@ -76,7 +76,6 @@ private: // Objetos y punteros std::vector enemies; // Listado con los enemigos de la habitación std::vector items; // Listado con los items que hay en la habitación - std::vector *tileMap; // Indice de los tiles a dibujar en la habitación Texture *texture; // Textura con los graficos de la habitación Texture *textureA; // Textura con los graficos de la habitación Texture *textureB; // Textura con los graficos de la habitación @@ -101,6 +100,7 @@ private: std::string roomRight; // Identificador de la habitación que se encuentra a la derecha std::string tileSetFile; // Imagen con los graficos para la habitación std::string tileMapFile; // Fichero con el mapa de indices de tile + std::vector tileMap; // Indice de los tiles a dibujar en la habitación int autoSurfaceDirection; // Sentido en el que arrastran las superficies automáticas de la habitación JA_Sound itemSound; // Sonido producido al coger un objeto std::vector bottomSurfaces; // Lista con las superficies inferiores de la habitación