diff --git a/source/core/rendering/screen.cpp b/source/core/rendering/screen.cpp index 692c206..8794c59 100644 --- a/source/core/rendering/screen.cpp +++ b/source/core/rendering/screen.cpp @@ -9,7 +9,7 @@ #include // for basic_string, char_traits, string #include "core/input/mouse.hpp" // for Mouse::cursorVisible, Mouse::lastMouseMoveTime -#include "core/rendering/text.h" // for Text, TXT_CENTER, TXT_COLOR, TXT_STROKE +#include "core/rendering/text.h" // for Text #include "core/resources/resource.h" #include "game/defaults.hpp" // for GAMECANVAS_WIDTH, GAMECANVAS_HEIGHT #include "game/options.hpp" // for Options::video, Options::settings @@ -438,7 +438,7 @@ void Screen::renderNotification() { if (notification_text_ == nullptr || SDL_GetTicks() >= notification_end_time_) { return; } - notification_text_->writeDX(TXT_CENTER | TXT_COLOR | TXT_STROKE, + notification_text_->writeDX(Text::FLAG_CENTER | Text::FLAG_COLOR | Text::FLAG_STROKE, game_canvas_width_ / 2, notification_y_, notification_message_, diff --git a/source/core/rendering/text.cpp b/source/core/rendering/text.cpp index 15b0f43..c189c98 100644 --- a/source/core/rendering/text.cpp +++ b/source/core/rendering/text.cpp @@ -186,10 +186,10 @@ void Text::writeCentered(int x, int y, const std::string &text, int kerning, int // Escribe texto con extras void Text::writeDX(Uint8 flags, int x, int y, const std::string &text, int kerning, Color text_color, Uint8 shadow_distance, Color shadow_color, int lenght) { - const bool CENTERED = ((flags & TXT_CENTER) == TXT_CENTER); - const bool SHADOWED = ((flags & TXT_SHADOW) == TXT_SHADOW); - const bool COLORED = ((flags & TXT_COLOR) == TXT_COLOR); - const bool STROKED = ((flags & TXT_STROKE) == TXT_STROKE); + const bool CENTERED = ((flags & Text::FLAG_CENTER) == Text::FLAG_CENTER); + const bool SHADOWED = ((flags & Text::FLAG_SHADOW) == Text::FLAG_SHADOW); + const bool COLORED = ((flags & Text::FLAG_COLOR) == Text::FLAG_COLOR); + const bool STROKED = ((flags & Text::FLAG_STROKE) == Text::FLAG_STROKE); if (CENTERED) { x -= (Text::lenght(text, kerning) / 2); diff --git a/source/core/rendering/text.h b/source/core/rendering/text.h index 600233a..871e4df 100644 --- a/source/core/rendering/text.h +++ b/source/core/rendering/text.h @@ -9,15 +9,15 @@ class Sprite; class Texture; #include "utils/utils.h" -// Opciones de texto -constexpr int TXT_COLOR = 1; -constexpr int TXT_SHADOW = 2; -constexpr int TXT_CENTER = 4; -constexpr int TXT_STROKE = 8; - // Clase texto. Pinta texto en pantalla a partir de un bitmap class Text { public: + // Flags bitmask para writeDX + static constexpr int FLAG_COLOR = 1; + static constexpr int FLAG_SHADOW = 2; + static constexpr int FLAG_CENTER = 4; + static constexpr int FLAG_STROKE = 8; + struct Offset { int x; // Posición X dentro del bitmap int y; // Posición Y dentro del bitmap diff --git a/source/game/game.cpp b/source/game/game.cpp index 940aa58..d51190c 100644 --- a/source/game/game.cpp +++ b/source/game/game.cpp @@ -16,7 +16,7 @@ #include "core/rendering/screen.h" // for Screen #include "core/rendering/smartsprite.h" // for SmartSprite #include "core/rendering/sprite.h" // for Sprite -#include "core/rendering/text.h" // for Text, TXT_CENTER +#include "core/rendering/text.h" // for Text #include "core/rendering/texture.h" // for Texture #include "core/resources/asset.h" // for Asset #include "core/resources/resource.h" @@ -2595,7 +2595,7 @@ void Game::renderMessages() { // Time Stopped if (time_stopped_) { if ((time_stopped_counter_ > 100) || (time_stopped_counter_ % 10 > 4)) { - text_nokia2_->writeDX(TXT_CENTER, PLAY_AREA_CENTER_X, PLAY_AREA_FIRST_QUARTER_Y, Lang::get()->getText(36) + std::to_string(time_stopped_counter_ / 10), -1, NO_COLOR, 1, SHADOW_COLOR); + text_nokia2_->writeDX(Text::FLAG_CENTER, PLAY_AREA_CENTER_X, PLAY_AREA_FIRST_QUARTER_Y, Lang::get()->getText(36) + std::to_string(time_stopped_counter_ / 10), -1, NO_COLOR, 1, SHADOW_COLOR); } if (time_stopped_counter_ > 100) { @@ -2612,7 +2612,7 @@ void Game::renderMessages() { // D E M O if (demo_.enabled) { if (demo_.counter % 30 > 14) { - text_nokia_big2_->writeDX(TXT_CENTER, PLAY_AREA_CENTER_X, PLAY_AREA_FIRST_QUARTER_Y, Lang::get()->getText(37), 0, NO_COLOR, 2, SHADOW_COLOR); + text_nokia_big2_->writeDX(Text::FLAG_CENTER, PLAY_AREA_CENTER_X, PLAY_AREA_FIRST_QUARTER_Y, Lang::get()->getText(37), 0, NO_COLOR, 2, SHADOW_COLOR); } } @@ -2628,11 +2628,11 @@ void Game::renderMessages() { } if (!game_completed_) { // Escribe el numero de fases restantes - text_nokia_big2_->writeDX(TXT_CENTER, PLAY_AREA_CENTER_X, stage_bitmap_path_[stage_bitmap_counter_], stage_text, -2, NO_COLOR, 2, SHADOW_COLOR); + text_nokia_big2_->writeDX(Text::FLAG_CENTER, PLAY_AREA_CENTER_X, stage_bitmap_path_[stage_bitmap_counter_], stage_text, -2, NO_COLOR, 2, SHADOW_COLOR); } else { // Escribe el texto de juego completado stage_text = Lang::get()->getText(50); - text_nokia_big2_->writeDX(TXT_CENTER, PLAY_AREA_CENTER_X, stage_bitmap_path_[stage_bitmap_counter_], stage_text, -2, NO_COLOR, 1, SHADOW_COLOR); - text_nokia2_->writeDX(TXT_CENTER, PLAY_AREA_CENTER_X, stage_bitmap_path_[stage_bitmap_counter_] + text_nokia_big2_->getCharacterSize() + 2, Lang::get()->getText(76), -1, NO_COLOR, 1, SHADOW_COLOR); + text_nokia_big2_->writeDX(Text::FLAG_CENTER, PLAY_AREA_CENTER_X, stage_bitmap_path_[stage_bitmap_counter_], stage_text, -2, NO_COLOR, 1, SHADOW_COLOR); + text_nokia2_->writeDX(Text::FLAG_CENTER, PLAY_AREA_CENTER_X, stage_bitmap_path_[stage_bitmap_counter_] + text_nokia_big2_->getCharacterSize() + 2, Lang::get()->getText(76), -1, NO_COLOR, 1, SHADOW_COLOR); } } } diff --git a/source/game/scenes/instructions.cpp b/source/game/scenes/instructions.cpp index 11a17c4..88c2843 100644 --- a/source/game/scenes/instructions.cpp +++ b/source/game/scenes/instructions.cpp @@ -12,7 +12,7 @@ #include "core/locale/lang.h" // for Lang #include "core/rendering/screen.h" // for Screen #include "core/rendering/sprite.h" // for Sprite -#include "core/rendering/text.h" // for Text, TXT_CENTER, TXT_COLOR, TXT_SHADOW +#include "core/rendering/text.h" // for Text #include "core/rendering/texture.h" // for Texture #include "core/resources/resource.h" #include "game/defaults.hpp" // for GAMECANVAS_CENTER_X, GAME... @@ -117,12 +117,12 @@ void Instructions::render() { SDL_RenderClear(renderer_); // Escribe el texto - text_->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, GAMECANVAS_CENTER_X, 8, Lang::get()->getText(11), 1, ORANGE_COLOR, 1, SHADOW_COLOR); - text_->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, GAMECANVAS_CENTER_X, 24, Lang::get()->getText(12), 1, NO_COLOR, 1, SHADOW_COLOR); - text_->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, GAMECANVAS_CENTER_X, 34, Lang::get()->getText(13), 1, NO_COLOR, 1, SHADOW_COLOR); - text_->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, GAMECANVAS_CENTER_X, 48, Lang::get()->getText(14), 1, NO_COLOR, 1, SHADOW_COLOR); - text_->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, GAMECANVAS_CENTER_X, 58, Lang::get()->getText(15), 1, NO_COLOR, 1, SHADOW_COLOR); - text_->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, GAMECANVAS_CENTER_X, 75, Lang::get()->getText(16), 1, ORANGE_COLOR, 1, SHADOW_COLOR); + text_->writeDX(Text::FLAG_CENTER | Text::FLAG_COLOR | Text::FLAG_SHADOW, GAMECANVAS_CENTER_X, 8, Lang::get()->getText(11), 1, ORANGE_COLOR, 1, SHADOW_COLOR); + text_->writeDX(Text::FLAG_CENTER | Text::FLAG_COLOR | Text::FLAG_SHADOW, GAMECANVAS_CENTER_X, 24, Lang::get()->getText(12), 1, NO_COLOR, 1, SHADOW_COLOR); + text_->writeDX(Text::FLAG_CENTER | Text::FLAG_COLOR | Text::FLAG_SHADOW, GAMECANVAS_CENTER_X, 34, Lang::get()->getText(13), 1, NO_COLOR, 1, SHADOW_COLOR); + text_->writeDX(Text::FLAG_CENTER | Text::FLAG_COLOR | Text::FLAG_SHADOW, GAMECANVAS_CENTER_X, 48, Lang::get()->getText(14), 1, NO_COLOR, 1, SHADOW_COLOR); + text_->writeDX(Text::FLAG_CENTER | Text::FLAG_COLOR | Text::FLAG_SHADOW, GAMECANVAS_CENTER_X, 58, Lang::get()->getText(15), 1, NO_COLOR, 1, SHADOW_COLOR); + text_->writeDX(Text::FLAG_CENTER | Text::FLAG_COLOR | Text::FLAG_SHADOW, GAMECANVAS_CENTER_X, 75, Lang::get()->getText(16), 1, ORANGE_COLOR, 1, SHADOW_COLOR); text_->writeShadowed(84, 92, Lang::get()->getText(17), SHADOW_COLOR); text_->writeShadowed(84, 108, Lang::get()->getText(18), SHADOW_COLOR); @@ -131,7 +131,7 @@ void Instructions::render() { text_->writeShadowed(84, 156, Lang::get()->getText(21), SHADOW_COLOR); if ((mode_ == Mode::MANUAL) && (counter_ % 50 > 14)) { - text_->writeDX(TXT_CENTER | TXT_COLOR | TXT_SHADOW, GAMECANVAS_CENTER_X, GAMECANVAS_HEIGHT - 12, Lang::get()->getText(22), 1, ORANGE_COLOR, 1, SHADOW_COLOR); + text_->writeDX(Text::FLAG_CENTER | Text::FLAG_COLOR | Text::FLAG_SHADOW, GAMECANVAS_CENTER_X, GAMECANVAS_HEIGHT - 12, Lang::get()->getText(22), 1, ORANGE_COLOR, 1, SHADOW_COLOR); } // Disquito diff --git a/source/game/scenes/title.cpp b/source/game/scenes/title.cpp index 0f1f9a8..8f1a06b 100644 --- a/source/game/scenes/title.cpp +++ b/source/game/scenes/title.cpp @@ -15,7 +15,7 @@ #include "core/rendering/screen.h" // for Screen #include "core/rendering/smartsprite.h" // for SmartSprite #include "core/rendering/sprite.h" // for Sprite -#include "core/rendering/text.h" // for Text, TXT_CENTER, TXT_SHADOW +#include "core/rendering/text.h" // for Text #include "core/rendering/texture.h" // for Texture #include "core/resources/asset.h" // for Asset #include "core/resources/resource.h" @@ -592,7 +592,7 @@ void Title::render() { crisis_bitmap_->render(); // Texto con el copyright y versión - text2_->writeDX(TXT_CENTER | TXT_SHADOW, GAMECANVAS_CENTER_X, GAMECANVAS_HEIGHT - (BLOCK * 2), COPYRIGHT, 1, NO_COLOR, 1, SHADOW_COLOR); + text2_->writeDX(Text::FLAG_CENTER | Text::FLAG_SHADOW, GAMECANVAS_CENTER_X, GAMECANVAS_HEIGHT - (BLOCK * 2), COPYRIGHT, 1, NO_COLOR, 1, SHADOW_COLOR); } if (menu_visible_) { @@ -604,7 +604,7 @@ void Title::render() { // PRESS ANY KEY! if ((counter_ % 50 > 14) && (!menu_visible_)) { - text1_->writeDX(TXT_CENTER | TXT_SHADOW, GAMECANVAS_CENTER_X, PLAY_AREA_THIRD_QUARTER_Y + BLOCK, Lang::get()->getText(23), 1, NO_COLOR, 1, SHADOW_COLOR); + text1_->writeDX(Text::FLAG_CENTER | Text::FLAG_SHADOW, GAMECANVAS_CENTER_X, PLAY_AREA_THIRD_QUARTER_Y + BLOCK, Lang::get()->getText(23), 1, NO_COLOR, 1, SHADOW_COLOR); } // Fade