diff --git a/source/game/defaults.hpp b/source/game/defaults.hpp index 064b9b7..05160fd 100644 --- a/source/game/defaults.hpp +++ b/source/game/defaults.hpp @@ -59,7 +59,6 @@ constexpr bool SOUND_ENABLED = true; // Sonido habilitado por defecto // ============================================================================= // NOTIFICATIONS // ============================================================================= -constexpr Options::NotificationPosition NOTIFICATION_POSITION = Options::NotificationPosition::UPPER_LEFT; // Posición de las notificaciones por defecto constexpr bool NOTIFICATION_SOUND = true; // Sonido de las notificaciones por defecto const Uint8 NOTIFICATION_COLOR = static_cast(PaletteColor::BLUE); // Color de las notificaciones por defecto diff --git a/source/game/options.hpp b/source/game/options.hpp index cf0845d..312855e 100644 --- a/source/game/options.hpp +++ b/source/game/options.hpp @@ -20,22 +20,6 @@ constexpr int convertVolume(int volume_percent) { } } // namespace VolumeHelpers -// Posiciones de las notificaciones -enum class NotificationPosition { - UPPER_LEFT, - UPPER_CENTER, - UPPER_RIGHT, - BOTTOM_LEFT, - BOTTOM_CENTER, - BOTTOM_RIGHT, - TOP, - BOTTOM, - LEFT, - RIGHT, - CENTER, - UNKNOWN, -}; - // Tipos de control de teclado enum class ControlScheme { CURSOR, @@ -52,54 +36,18 @@ namespace Options { // Estructura para las opciones de las notificaciones struct Notification { - NotificationPosition pos; // Ubicación de las notificaciones en pantalla - bool sound; // Indica si las notificaciones suenan - Uint8 color; // Color de las notificaciones + bool sound; // Indica si las notificaciones suenan + Uint8 color; // Color de las notificaciones // Constructor por defecto Notification() - : pos(GameDefaults::NOTIFICATION_POSITION), - sound(GameDefaults::NOTIFICATION_SOUND), + : sound(GameDefaults::NOTIFICATION_SOUND), color(GameDefaults::NOTIFICATION_COLOR) {} // Constructor - Notification(NotificationPosition p, bool s, Uint8 c) - : pos(p), - sound(s), + Notification(bool s, Uint8 c) + : sound(s), color(c) {} - - // Método que devuelve la posición horizontal - NotificationPosition getHorizontalPosition() const { - switch (pos) { - case NotificationPosition::UPPER_LEFT: - case NotificationPosition::BOTTOM_LEFT: - return NotificationPosition::LEFT; - case NotificationPosition::UPPER_CENTER: - case NotificationPosition::BOTTOM_CENTER: - return NotificationPosition::CENTER; - case NotificationPosition::UPPER_RIGHT: - case NotificationPosition::BOTTOM_RIGHT: - return NotificationPosition::RIGHT; - default: - return NotificationPosition::UNKNOWN; - } - } - - // Método que devuelve la posición vertical - NotificationPosition getVerticalPosition() const { - switch (pos) { - case NotificationPosition::UPPER_LEFT: - case NotificationPosition::UPPER_CENTER: - case NotificationPosition::UPPER_RIGHT: - return NotificationPosition::TOP; - case NotificationPosition::BOTTOM_LEFT: - case NotificationPosition::BOTTOM_CENTER: - case NotificationPosition::BOTTOM_RIGHT: - return NotificationPosition::BOTTOM; - default: - return NotificationPosition::UNKNOWN; - } - } }; // Estructura para albergar trucos @@ -308,15 +256,15 @@ struct Game { }; // --- Variables globales (inline C++17+) --- -inline std::string version{}; // Versión del fichero de configuración. Sirve para saber si las opciones son compatibles -inline bool console{false}; // Indica si ha de mostrar información por la consola de texto -inline Cheat cheats{}; // Contiene trucos y ventajas para el juego -inline Game game{}; // Opciones de juego -inline Video video{}; // Opciones de video -inline Stats stats{}; // Datos con las estadisticas de juego -inline Notification notifications{}; // Opciones relativas a las notificaciones; -inline Window window{}; // Opciones relativas a la ventana -inline Audio audio{}; // Opciones relativas al audio +inline std::string version{}; // Versión del fichero de configuración. Sirve para saber si las opciones son compatibles +inline bool console{false}; // Indica si ha de mostrar información por la consola de texto +inline Cheat cheats{}; // Contiene trucos y ventajas para el juego +inline Game game{}; // Opciones de juego +inline Video video{}; // Opciones de video +inline Stats stats{}; // Datos con las estadisticas de juego +inline Notification notifications{}; // Opciones relativas a las notificaciones; +inline Window window{}; // Opciones relativas a la ventana +inline Audio audio{}; // Opciones relativas al audio inline ControlScheme keys{GameDefaults::CONTROL_SCHEME}; // Teclas usadas para jugar // --- Funciones --- diff --git a/source/game/ui/notifier.cpp b/source/game/ui/notifier.cpp index 25d63c1..87d2811 100644 --- a/source/game/ui/notifier.cpp +++ b/source/game/ui/notifier.cpp @@ -62,7 +62,7 @@ void Notifier::update() { switch (notification.state) { case NotificationStatus::RISING: { - const int DIRECTION = (Options::notifications.getVerticalPosition() == Options::NotificationPosition::TOP) ? 1 : -1; + const int DIRECTION = 1; notification.rect.y += DIRECTION; if (notification.rect.y == notification.y) { @@ -80,7 +80,7 @@ void Notifier::update() { } case NotificationStatus::VANISHING: { - const int DIRECTION = (Options::notifications.getVerticalPosition() == Options::NotificationPosition::TOP) ? -1 : 1; + const int DIRECTION = -1; notification.rect.y += DIRECTION; if (notification.rect.y == notification.y - notification.travel_dist) { @@ -145,31 +145,15 @@ void Notifier::show(std::vector texts, NotificationText text_is, Ui const auto SHAPE = NotificationShape::SQUARED; // Posición horizontal - float desp_h = 0; - switch (Options::notifications.getHorizontalPosition()) { - case Options::NotificationPosition::LEFT: - desp_h = PADDING_OUT; - break; - - case Options::NotificationPosition::CENTER: - desp_h = ((Options::game.width / 2) - (WIDTH / 2)); - break; - - case Options::NotificationPosition::RIGHT: - desp_h = Options::game.width - WIDTH - PADDING_OUT; - break; - - default: - desp_h = 0; - break; - } + float desp_h = ((Options::game.width / 2) - (WIDTH / 2)); + ; // Posición vertical - const int DESP_V = (Options::notifications.getVerticalPosition() == Options::NotificationPosition::TOP) ? PADDING_OUT : Options::game.height - HEIGHT - PADDING_OUT; + const int DESP_V = PADDING_OUT; // Offset const auto TRAVEL_DIST = HEIGHT + PADDING_OUT; - const int TRAVEL_MOD = (Options::notifications.getVerticalPosition() == Options::NotificationPosition::TOP) ? 1 : -1; + const int TRAVEL_MOD = 1; const int OFFSET = !notifications_.empty() ? notifications_.back().y + (TRAVEL_MOD * notifications_.back().travel_dist) : DESP_V; // Crea la notificacion @@ -183,7 +167,7 @@ void Notifier::show(std::vector texts, NotificationText text_is, Ui n.texts = texts; n.shape = SHAPE; n.display_duration = display_duration; - const float Y_POS = OFFSET + ((Options::notifications.getVerticalPosition() == Options::NotificationPosition::TOP) ? -TRAVEL_DIST : TRAVEL_DIST); + const float Y_POS = OFFSET + -TRAVEL_DIST; n.rect = {desp_h, Y_POS, WIDTH, HEIGHT}; // Crea la textura diff --git a/source/main.cpp b/source/main.cpp index 4d02421..5cbb573 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -14,5 +14,5 @@ int main(int argc, char* argv[]) { auto director = std::make_unique(argc, const_cast(argv)); // Bucle principal - return director->run(); + return Director::run(); }