diff --git a/data/ending/ending1.gif b/data/ending/ending1.gif index d7c03d4..2fd78f8 100644 Binary files a/data/ending/ending1.gif and b/data/ending/ending1.gif differ diff --git a/data/ending/ending2.gif b/data/ending/ending2.gif index d182b34..922f80d 100644 Binary files a/data/ending/ending2.gif and b/data/ending/ending2.gif differ diff --git a/data/ending/ending3.gif b/data/ending/ending3.gif index b65aee1..8a24fd6 100644 Binary files a/data/ending/ending3.gif and b/data/ending/ending3.gif differ diff --git a/data/ending/ending4.gif b/data/ending/ending4.gif index e80ad02..0f52a6a 100644 Binary files a/data/ending/ending4.gif and b/data/ending/ending4.gif differ diff --git a/data/ending/ending5.gif b/data/ending/ending5.gif index cf98d73..102ece5 100644 Binary files a/data/ending/ending5.gif and b/data/ending/ending5.gif differ diff --git a/data/loading/loading_screen_bn.gif b/data/loading/loading_screen_bn.gif index a53e978..cfa1c58 100644 Binary files a/data/loading/loading_screen_bn.gif and b/data/loading/loading_screen_bn.gif differ diff --git a/data/loading/loading_screen_color.gif b/data/loading/loading_screen_color.gif index 8b61168..2d26991 100644 Binary files a/data/loading/loading_screen_color.gif and b/data/loading/loading_screen_color.gif differ diff --git a/data/player/player_game_over.gif b/data/player/player_game_over.gif index f7d69b3..b48c4f8 100644 Binary files a/data/player/player_game_over.gif and b/data/player/player_game_over.gif differ diff --git a/data/tilesets/standard.gif b/data/tilesets/standard.gif index 0142112..63f026d 100644 Binary files a/data/tilesets/standard.gif and b/data/tilesets/standard.gif differ diff --git a/data/title/title_loading.gif b/data/title/title_loading.gif deleted file mode 100644 index f0aa075..0000000 Binary files a/data/title/title_loading.gif and /dev/null differ diff --git a/data/title/title_logo.gif b/data/title/title_logo.gif index 4a36fb1..6120cbf 100644 Binary files a/data/title/title_logo.gif and b/data/title/title_logo.gif differ diff --git a/source/director.cpp b/source/director.cpp index d5d3a43..8382983 100644 --- a/source/director.cpp +++ b/source/director.cpp @@ -426,129 +426,13 @@ bool Director::setFileList() Asset::get()->add(system_folder_ + "/stats.csv", AssetType::DATA, false, true); Asset::get()->add(system_folder_ + "/cheevos.bin", AssetType::DATA, false, true); - // Habitaciones - Asset::get()->add(prefix + "/data/room/01.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/02.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/03.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/04.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/05.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/06.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/07.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/08.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/09.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/10.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/11.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/12.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/13.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/14.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/15.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/16.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/17.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/18.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/19.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/20.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/21.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/22.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/23.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/24.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/25.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/26.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/27.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/28.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/29.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/30.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/31.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/32.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/33.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/34.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/35.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/36.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/37.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/38.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/39.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/40.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/41.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/42.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/43.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/44.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/45.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/46.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/47.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/48.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/49.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/50.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/51.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/52.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/53.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/54.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/55.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/56.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/57.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/58.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/59.room", AssetType::ROOM); - Asset::get()->add(prefix + "/data/room/60.room", AssetType::ROOM); - - // Tilemaps - Asset::get()->add(prefix + "/data/room/01.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/02.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/03.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/04.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/05.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/06.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/07.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/08.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/09.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/10.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/11.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/12.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/13.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/14.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/15.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/16.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/17.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/18.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/19.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/20.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/21.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/22.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/23.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/24.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/25.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/26.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/27.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/28.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/29.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/30.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/31.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/32.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/33.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/34.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/35.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/36.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/37.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/38.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/39.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/40.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/41.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/42.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/43.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/44.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/45.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/46.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/47.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/48.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/49.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/50.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/51.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/52.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/53.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/54.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/55.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/56.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/57.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/58.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/59.tmx", AssetType::TILEMAP); - Asset::get()->add(prefix + "/data/room/60.tmx", AssetType::TILEMAP); + // Tilemaps y Rooms + for (int i = 1; i <= 60; ++i) + { + std::string index = (i < 10 ? "0" : "") + std::to_string(i); + Asset::get()->add(prefix + "/data/room/" + index + ".tmx", AssetType::TILEMAP); + Asset::get()->add(prefix + "/data/room/" + index + ".room", AssetType::ROOM); + } // Tilesets Asset::get()->add(prefix + "/data/tilesets/standard.gif", AssetType::BITMAP); @@ -693,32 +577,15 @@ bool Director::setFileList() // Efectos de sonido Asset::get()->add(prefix + "/data/sound/item.wav", AssetType::SOUND); Asset::get()->add(prefix + "/data/sound/death.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump1.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump2.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump3.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump4.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump5.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump6.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump7.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump8.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump9.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump10.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump11.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump12.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump13.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump14.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump15.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump16.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump17.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump18.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump19.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump20.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump21.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump22.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump23.wav", AssetType::SOUND); - Asset::get()->add(prefix + "/data/sound/jump24.wav", AssetType::SOUND); Asset::get()->add(prefix + "/data/sound/notify.wav", AssetType::SOUND); + // Efectos de sonido para el salto + for (int i = 1; i <= 24; ++i) + { + std::string jump_index = std::to_string(i); + Asset::get()->add(prefix + "/data/sound/jump" + jump_index + ".wav", AssetType::SOUND); + } + // Logo Asset::get()->add(prefix + "/data/logo/jailgames.gif", AssetType::BITMAP); Asset::get()->add(prefix + "/data/logo/since_1998.gif", AssetType::BITMAP); @@ -728,7 +595,6 @@ bool Director::setFileList() Asset::get()->add(prefix + "/data/loading/loading_screen_color.gif", AssetType::BITMAP); // Title - Asset::get()->add(prefix + "/data/title/title_loading.gif", AssetType::BITMAP); Asset::get()->add(prefix + "/data/title/title_logo.gif", AssetType::BITMAP); // Ending diff --git a/source/ending.cpp b/source/ending.cpp index 462d4ff..75cace4 100644 --- a/source/ending.cpp +++ b/source/ending.cpp @@ -72,6 +72,7 @@ void Ending::update() // Actualiza el volumen de la musica updateMusicVolume(); + // Actualiza el objeto Screen Screen::get()->update(); } } @@ -241,6 +242,7 @@ void Ending::iniPics() // Crea la texture sp.image_surface = Resource::get()->getSurface(pic.caption); + sp.image_surface->setTransparentColor(); const int WIDTH = sp.image_surface->getWidth(); const int HEIGHT = sp.image_surface->getHeight(); diff --git a/source/game.cpp b/source/game.cpp index 690201c..436d507 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -440,7 +440,7 @@ void Game::renderBlackScreen() { if (black_screen_) { - auto const color = static_cast(PaletteColor::BRIGHT_BLACK); + auto const color = static_cast(PaletteColor::BLACK); Screen::get()->setRendererSurface(); Screen::get()->clearSurface(color); Screen::get()->setBorderColor(color); @@ -451,13 +451,13 @@ void Game::renderBlackScreen() void Game::setScoreBoardColor() { // Obtiene el color del borde - const Uint8 colorBorder = room_->getBorderColor(); + const Uint8 BORDER_COLOR = room_->getBorderColor(); - const bool isBlack = colorBorder == stringToColor("black"); - const bool isBrightBlack = colorBorder == stringToColor("bright_black"); + const bool IS_BLACK = BORDER_COLOR == static_cast(PaletteColor::BLACK); + const bool IS_BRIGHT_BLACK = BORDER_COLOR == static_cast(PaletteColor::BRIGHT_BLACK); // Si el color del borde es negro o negro brillante cambia el texto del marcador a blanco - board_->color = isBlack || isBrightBlack ? stringToColor("white") : colorBorder; + board_->color = IS_BLACK || IS_BRIGHT_BLACK ? static_cast(PaletteColor::WHITE) : BORDER_COLOR; } // Comprueba si ha finalizado el juego diff --git a/source/game_over.cpp b/source/game_over.cpp index e0bc08a..4f9c2cf 100644 --- a/source/game_over.cpp +++ b/source/game_over.cpp @@ -30,6 +30,8 @@ GameOver::GameOver() tv_sprite_->setPosX(GAMECANVAS_CENTER_X - tv_sprite_->getWidth() - 10); tv_sprite_->setPosY(30); + Screen::get()->setBorderColor(static_cast(PaletteColor::BLACK)); + // Inicializa el vector de colores const std::vector COLORS = {"white", "yellow", "cyan", "green", "magenta", "red", "blue", "black"}; for (const auto &color : COLORS) @@ -61,6 +63,7 @@ void GameOver::update() player_sprite_->update(); tv_sprite_->update(); + // Actualiza el objeto Screen Screen::get()->update(); } } @@ -71,7 +74,7 @@ void GameOver::render() constexpr int Y = 32; Screen::get()->start(); - Screen::get()->clearSurface(1); + Screen::get()->clearSurface(static_cast(PaletteColor::BLACK)); auto text = Resource::get()->getText("smb2"); @@ -84,10 +87,10 @@ void GameOver::render() renderSprites(); // Escribe el texto con las habitaciones y los items - const std::string itemsTxt = std::to_string(options.stats.items / 100) + std::to_string((options.stats.items % 100) / 10) + std::to_string(options.stats.items % 10); - const std::string roomsTxt = std::to_string(options.stats.rooms / 100) + std::to_string((options.stats.rooms % 100) / 10) + std::to_string(options.stats.rooms % 10); - text->writeDX(TEXT_CENTER | TEXT_COLOR, GAMECANVAS_CENTER_X, Y + 80, "ITEMS: " + itemsTxt, 1, color_); - text->writeDX(TEXT_CENTER | TEXT_COLOR, GAMECANVAS_CENTER_X, Y + 90, "ROOMS: " + roomsTxt, 1, color_); + const std::string ITEMS_TEXT = std::to_string(options.stats.items / 100) + std::to_string((options.stats.items % 100) / 10) + std::to_string(options.stats.items % 10); + const std::string ROOMS_TEXT = std::to_string(options.stats.rooms / 100) + std::to_string((options.stats.rooms % 100) / 10) + std::to_string(options.stats.rooms % 10); + text->writeDX(TEXT_CENTER | TEXT_COLOR, GAMECANVAS_CENTER_X, Y + 80, "ITEMS: " + ITEMS_TEXT, 1, color_); + text->writeDX(TEXT_CENTER | TEXT_COLOR, GAMECANVAS_CENTER_X, Y + 90, "ROOMS: " + ROOMS_TEXT, 1, color_); // Escribe el texto con "Tu peor pesadilla" text->writeDX(TEXT_CENTER | TEXT_COLOR, GAMECANVAS_CENTER_X, Y + 110, "YOUR WORST NIGHTMARE IS", 1, color_); @@ -131,15 +134,15 @@ void GameOver::updateColor() if (counter_ < half) { - const float step = std::min(counter_, COUNTER_FADE_LENGHT_) / (float)COUNTER_FADE_LENGHT_; - const int index = (colors_.size() - 1) - int((colors_.size() - 1) * step); - color_ = colors_[index]; + const float STEP = std::min(counter_, COUNTER_FADE_LENGHT_) / (float)COUNTER_FADE_LENGHT_; + const int INDEX = (colors_.size() - 1) - int((colors_.size() - 1) * STEP); + color_ = colors_[INDEX]; } else { - const float step = std::min(std::max(counter_, COUNTER_INIT_FADE_) - COUNTER_INIT_FADE_, COUNTER_FADE_LENGHT_) / (float)COUNTER_FADE_LENGHT_; - const int index = (colors_.size() - 1) * step; - color_ = colors_[index]; + const float STEP = std::min(std::max(counter_, COUNTER_INIT_FADE_) - COUNTER_INIT_FADE_, COUNTER_FADE_LENGHT_) / (float)COUNTER_FADE_LENGHT_; + const int INDEX = (colors_.size() - 1) * STEP; + color_ = colors_[INDEX]; } } diff --git a/source/loading_screen.cpp b/source/loading_screen.cpp index 2f3ceb9..0b1abc5 100644 --- a/source/loading_screen.cpp +++ b/source/loading_screen.cpp @@ -25,7 +25,7 @@ LoadingScreen::LoadingScreen() screen_surface_(std::make_shared(options.game.width, options.game.height)) { // Configura la superficie donde se van a pintar los sprites - screen_surface_->clear(stringToColor("white")); + screen_surface_->clear(static_cast(PaletteColor::WHITE)); // Inicializa variables options.section.section = Section::LOADING_SCREEN; diff --git a/source/notifier.cpp b/source/notifier.cpp index 71cefab..9978bc0 100644 --- a/source/notifier.cpp +++ b/source/notifier.cpp @@ -237,7 +237,7 @@ void Notifier::show(std::vector texts, NotificationText text_is, Ui { n.surface->clear(bg_color_); SDL_Rect rect = {0, 0, n.surface->getWidth(), n.surface->getHeight()}; - n.surface->drawRectBorder(&rect, static_cast(PaletteColor::RED)); + n.surface->drawRectBorder(&rect, static_cast(PaletteColor::CYAN)); } // Dibuja el icono de la notificación diff --git a/source/options.h b/source/options.h index 3c8328e..3759e46 100644 --- a/source/options.h +++ b/source/options.h @@ -81,7 +81,7 @@ constexpr Subsection DEFAULT_SUBSECTION = Subsection::LOGO_TO_INTRO; constexpr ControlScheme DEFAULT_CONTROL_SCHEME = ControlScheme::CURSOR; // Control por defecto constexpr NotificationPosition DEFAULT_NOTIFICATION_POSITION = NotificationPosition::UPPER_LEFT; // Posición de las notificaciones por defecto constexpr bool DEFAULT_NOTIFICATION_SOUND = true; // Sonido de las notificaciones por defecto -const Uint8 DEFAULT_NOTIFICATION_COLOR = static_cast(PaletteColor::BLACK); // Color de las notificaciones por defecto +const Uint8 DEFAULT_NOTIFICATION_COLOR = static_cast(PaletteColor::BLUE); // Color de las notificaciones por defecto constexpr bool DEFAULT_CONSOLE = false; // Consola desactivada por defecto constexpr const char *DEFAULT_VERSION = "1.10"; // Versión por defecto diff --git a/source/resource.cpp b/source/resource.cpp index e880cb0..0ab5ea8 100644 --- a/source/resource.cpp +++ b/source/resource.cpp @@ -14,8 +14,8 @@ #include "text.h" // for Text, loadTextFile #include "utils.h" // for getFileName, printWithDots, Color #include "room.h" -struct JA_Music_t; // lines 12-12 -struct JA_Sound_t; // lines 13-13 +struct JA_Music_t; // lines 12-12 +struct JA_Sound_t; // lines 13-13 // [SINGLETON] Hay que definir las variables estáticas, desde el .h sólo la hemos declarado Resource *Resource::resource_ = nullptr; @@ -257,6 +257,15 @@ void Resource::loadSurfaces() surfaces_.back().surface->setTransparentColor(0); updateLoadingProgress(); } + + // Reconfigura el color transparente de algunas surfaces + getSurface("loading_screen_color.gif")->setTransparentColor(); + getSurface("ending1.gif")->setTransparentColor(); + getSurface("ending2.gif")->setTransparentColor(); + getSurface("ending3.gif")->setTransparentColor(); + getSurface("ending4.gif")->setTransparentColor(); + getSurface("ending5.gif")->setTransparentColor(); + getSurface("standard.gif")->setTransparentColor(16); } // Carga las paletas @@ -434,7 +443,7 @@ void Resource::renderProgress() const int wired_bar_width = options.game.width - (X_PADDING * 2); SDL_Rect rect_wired = {X_PADDING, bar_position, wired_bar_width, X_PADDING}; surface->drawRectBorder(&rect_wired, static_cast(PaletteColor::WHITE)); - + const int full_bar_width = wired_bar_width * count_.getPercentage(); SDL_Rect rect_full = {X_PADDING, bar_position, full_bar_width, X_PADDING}; surface->fillRect(&rect_full, static_cast(PaletteColor::WHITE)); diff --git a/source/room.cpp b/source/room.cpp index bbed97b..23d612d 100644 --- a/source/room.cpp +++ b/source/room.cpp @@ -487,28 +487,15 @@ void Room::fillMapTexture() // Tiled pone los tiles vacios del mapa como cero y empieza a contar de 1 a n. // 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 * MAP_WIDTH_) + x; - const bool a = (tile_map_[index] >= 18 * tile_set_width_) && (tile_map_[index] < 19 * tile_set_width_); - const bool b = tile_map_[index] > -1; + const int INDEX = (y * MAP_WIDTH_) + x; + const bool A = (tile_map_[INDEX] >= 18 * tile_set_width_) && (tile_map_[INDEX] < 19 * tile_set_width_); + const bool B = tile_map_[INDEX] > -1; - if (b && !a) + if (B && !A) { - clip.x = (tile_map_[index] % tile_set_width_) * TILE_SIZE_; - clip.y = (tile_map_[index] / tile_set_width_) * TILE_SIZE_; + clip.x = (tile_map_[INDEX] % tile_set_width_) * TILE_SIZE_; + clip.y = (tile_map_[INDEX] / tile_set_width_) * TILE_SIZE_; surface_->render(x * TILE_SIZE_, y * TILE_SIZE_, &clip); - -#ifdef DEBUG - /*if (Debug::get()->getEnabled()) - { - if (clip.x != -TILE_SIZE_) - { - clip.x = x * TILE_SIZE_; - clip.y = y * TILE_SIZE_; - SDL_SetRenderDrawColor(Screen::get()->getRenderer(), 64, 64, 64, 224); - SDL_RenderFillRect(Screen::get()->getRenderer(), &clip); - } - }*/ -#endif } } diff --git a/source/surface.h b/source/surface.h index 2442a7f..dee7a77 100644 --- a/source/surface.h +++ b/source/surface.h @@ -6,6 +6,7 @@ #include #include #include +#include "utils.h" // Alias using Palette = std::array; @@ -137,7 +138,7 @@ public: // Color transparente Uint8 getTransparentColor() const { return transparent_color_; } - void setTransparentColor(Uint8 color) { transparent_color_ = color; } + void setTransparentColor(Uint8 color = static_cast(PaletteColor::TRANSPARENT)) { transparent_color_ = color; } // Paleta void setPalette(const std::array &palette) { palette_ = palette; } diff --git a/source/title.cpp b/source/title.cpp index 0bd7b93..3e5c33d 100644 --- a/source/title.cpp +++ b/source/title.cpp @@ -23,9 +23,9 @@ // Constructor Title::Title() : title_logo_surface_(Resource::get()->getSurface("title_logo.gif")), - title_logo_sprite_(std::make_shared(title_logo_surface_, 0, 0, title_logo_surface_->getWidth(), title_logo_surface_->getHeight())), - loading_screen_surface_(Resource::get()->getSurface("title_loading.gif")), - loading_screen_sprite_(std::make_shared(loading_screen_surface_, 0, options.game.height - loading_screen_surface_->getHeight(), loading_screen_surface_->getWidth(), loading_screen_surface_->getHeight())), + title_logo_sprite_(std::make_shared(title_logo_surface_, 29, 9, title_logo_surface_->getWidth(), title_logo_surface_->getHeight())), + loading_screen_surface_(Resource::get()->getSurface("loading_screen_color.gif")), + loading_screen_sprite_(std::make_shared(loading_screen_surface_, 0, 0, loading_screen_surface_->getWidth(), loading_screen_surface_->getHeight())), bg_surface_(std::make_shared(options.game.width, options.game.height)) { // Inicializa variables