diff --git a/source/ui/help_overlay.cpp b/source/ui/help_overlay.cpp index 73bcb71..49ad0a3 100644 --- a/source/ui/help_overlay.cpp +++ b/source/ui/help_overlay.cpp @@ -2,19 +2,19 @@ #include // for std::min -#include "../theme_manager.h" #include "../text/textrenderer.h" +#include "../theme_manager.h" HelpOverlay::HelpOverlay() - : renderer_(nullptr) - , theme_mgr_(nullptr) - , text_renderer_(nullptr) - , physical_width_(0) - , physical_height_(0) - , visible_(false) - , box_size_(0) - , box_x_(0) - , box_y_(0) { + : renderer_(nullptr), + theme_mgr_(nullptr), + text_renderer_(nullptr), + physical_width_(0), + physical_height_(0), + visible_(false), + box_size_(0), + box_x_(0), + box_y_(0) { // Llenar lista de controles (organizados por categoría, equilibrado en 2 columnas) key_bindings_ = { // COLUMNA 1: SIMULACIÓN @@ -24,7 +24,7 @@ HelpOverlay::HelpOverlay() {"B", "Modo Boids (enjambre)"}, {"ESPACIO", "Impulso contra gravedad"}, {"G", "Toggle Gravedad ON/OFF"}, - {"↑↓←→", "Dirección de gravedad"}, + {"CURSORES", "Dirección de gravedad"}, {"", ""}, // Separador // COLUMNA 1: FIGURAS 3D @@ -43,7 +43,7 @@ HelpOverlay::HelpOverlay() {"Shift+C", "Tema anterior"}, {"NumEnter", "Página de temas"}, {"N", "Cambiar sprite"}, - {"", ""}, // Separador -> CAMBIO DE COLUMNA + {"[new_col]", ""}, // Separador -> CAMBIO DE COLUMNA // COLUMNA 2: PANTALLA {"PANTALLA", ""}, @@ -52,6 +52,7 @@ HelpOverlay::HelpOverlay() {"F4", "Fullscreen real"}, {"F5", "Escalado (F3 activo)"}, {"V", "Toggle V-Sync"}, + {"", ""}, // Separador // COLUMNA 2: MODOS {"MODOS", ""}, @@ -59,13 +60,13 @@ HelpOverlay::HelpOverlay() {"Shift+D", "Pausar tema dinámico"}, {"L", "Modo DEMO LITE"}, {"K", "Modo LOGO (easter egg)"}, + {"", ""}, // Separador // COLUMNA 2: DEBUG/AYUDA {"DEBUG/AYUDA", ""}, {"F12", "Toggle info debug"}, {"H", "Esta ayuda"}, - {"ESC", "Salir"} - }; + {"ESC", "Salir"}}; } HelpOverlay::~HelpOverlay() { @@ -80,7 +81,7 @@ void HelpOverlay::initialize(SDL_Renderer* renderer, ThemeManager* theme_mgr, in // Crear renderer de texto con tamaño reducido (18px en lugar de 24px) text_renderer_ = new TextRenderer(); - text_renderer_->init(renderer, "data/fonts/determination.ttf", 18, true); + text_renderer_->init(renderer, "data/fonts/FunnelSans-Regular.ttf", 18, true); calculateBoxDimensions(); } @@ -112,7 +113,7 @@ void HelpOverlay::render(SDL_Renderer* renderer) { theme_mgr_->getCurrentNotificationBackgroundColor(notif_bg_r, notif_bg_g, notif_bg_b); // Renderizar fondo semitransparente usando SDL_RenderGeometry (soporta alpha real) - float alpha = 0.95f; + float alpha = 0.85f; SDL_Vertex bg_vertices[4]; // Convertir RGB a float [0.0, 1.0] @@ -161,7 +162,7 @@ void HelpOverlay::renderHelpText() { // Configuración de espaciado int line_height = text_renderer_->getTextHeight(); - int padding = 25; // Equilibrio entre espacio y márgenes + int padding = 25; // Equilibrio entre espacio y márgenes int column_width = (box_size_ - padding * 3) / 2; // Ancho de cada columna (2 columnas) int current_x = box_x_ + padding; @@ -175,8 +176,7 @@ void HelpOverlay::renderHelpText() { box_x_ + box_size_ / 2 - title_width / 2, current_y, title, - category_color - ); + category_color); current_y += line_height * 2; // Espacio después del título // Guardar Y inicial de contenido (después del título) @@ -185,7 +185,7 @@ void HelpOverlay::renderHelpText() { // Renderizar cada línea for (const auto& binding : key_bindings_) { // Si es un separador (descripción vacía), cambiar de columna - if (binding.description[0] == '\0' && binding.key[0] == '\0') { + if (strcmp(binding.key, "[new_col]") == 0 && binding.description[0] == '\0') { if (current_column == 0) { // Cambiar a columna derecha current_column = 1; @@ -202,8 +202,7 @@ void HelpOverlay::renderHelpText() { current_x, current_y, binding.key, - category_color - ); + category_color); current_y += line_height + 2; // Espacio extra después de encabezado continue; } @@ -213,8 +212,7 @@ void HelpOverlay::renderHelpText() { current_x, current_y, binding.key, - content_color - ); + content_color); // Renderizar descripción con color de contenido int key_width = text_renderer_->getTextWidthPhysical(binding.key); @@ -222,8 +220,7 @@ void HelpOverlay::renderHelpText() { current_x + key_width + 10, // Espacio entre tecla y descripción current_y, binding.description, - content_color - ); + content_color); current_y += line_height; diff --git a/source/ui/ui_manager.cpp b/source/ui/ui_manager.cpp index e75b51c..6d6dc70 100644 --- a/source/ui/ui_manager.cpp +++ b/source/ui/ui_manager.cpp @@ -57,9 +57,9 @@ void UIManager::initialize(SDL_Renderer* renderer, ThemeManager* theme_manager, // Inicializar renderers // (el tamaño se configura dinámicamente en Engine según resolución) - text_renderer_->init(renderer, "data/fonts/determination.ttf", 24, true); - text_renderer_debug_->init(renderer, "data/fonts/determination.ttf", 24, true); - text_renderer_notifier_->init(renderer, "data/fonts/determination.ttf", 24, true); + text_renderer_->init(renderer, "data/fonts/FunnelSans-Regular.ttf", 18, true); + text_renderer_debug_->init(renderer, "data/fonts/FunnelSans-Regular.ttf", 18, true); + text_renderer_notifier_->init(renderer, "data/fonts/FunnelSans-Regular.ttf", 18, true); // Crear y configurar sistema de notificaciones notifier_ = new Notifier();