style: en Title, eliminat el submenu de controls

This commit is contained in:
2025-11-07 09:35:44 +01:00
parent 85844645ac
commit 9e3d3a7ce3
3 changed files with 103 additions and 149 deletions

View File

@@ -35,19 +35,10 @@ class Title {
FADE_LOADING_SCREEN,
MAIN_MENU,
CHEEVOS_MENU,
CONTROLS_MENU,
FADE_MENU,
POST_FADE_MENU,
};
enum class ControlsMenuState {
MAIN, // Mostrar menu principal de controles
KEYBOARD_REMAP, // Redefinir teclas del teclado
KEYBOARD_REMAP_COMPLETE, // Mostrar teclas definidas antes de guardar
JOYSTICK_REMAP, // Redefinir botones del joystick
JOYSTICK_REMAP_COMPLETE, // Mostrar botones definidos antes de guardar
};
// --- Constantes de tiempo (en segundos) ---
static constexpr float SHOW_LOADING_DURATION = 5.0F; // Tiempo mostrando loading screen (antes 500 frames)
static constexpr float FADE_STEP_INTERVAL = 0.05F; // Intervalo entre pasos de fade (antes cada 4 frames)
@@ -87,19 +78,20 @@ class Title {
SceneManager::Scene exit_scene_; // Escena de destino al salir del título
// --- Variables para redefinir controles ---
ControlsMenuState controls_menu_state_; // Subestado del menu de controles
bool is_remapping_keyboard_; // True si estamos redefiniendo teclado
bool is_remapping_joystick_; // True si estamos redefiniendo joystick
int remap_step_; // Paso actual en la redefinicion (0=LEFT, 1=RIGHT, 2=JUMP)
SDL_Scancode temp_keys_[3]; // Almacenamiento temporal de teclas capturadas
int temp_buttons_[3]; // Almacenamiento temporal de botones de gamepad capturados
std::string remap_error_message_; // Mensaje de error si la tecla/boton es invalido
float axis_cooldown_; // Cooldown para evitar múltiples capturas de ejes
bool remap_completed_; // True cuando se completa el remap (mostrar antes de guardar)
// --- Funciones ---
void update(); // Actualiza las variables
void render(); // Dibuja en pantalla
void handleEvents(); // Comprueba el manejador de eventos
void handleMainMenuKeyPress(SDL_Keycode key); // Maneja las teclas del menu principal
void handleControlsMenuKeyPress(SDL_Keycode key); // Maneja las teclas del menu de controles
void handleInput(float delta_time); // Comprueba las entradas
void updateState(float delta_time); // Actualiza el estado actual
void transitionToState(State new_state); // Transiciona a un nuevo estado
@@ -107,7 +99,6 @@ class Title {
void updateFadeLoadingScreen(float delta_time); // Actualiza FADE_LOADING_SCREEN
void updateMainMenu(float delta_time); // Actualiza MAIN_MENU
void updateCheevosMenu(float delta_time); // Actualiza CHEEVOS_MENU
void updateControlsMenu(float delta_time); // Actualiza CONTROLS_MENU
void updateFadeMenu(float delta_time); // Actualiza FADE_MENU
void updatePostFadeMenu(float delta_time); // Actualiza POST_FADE_MENU
void initMarquee(); // Inicializa la marquesina
@@ -116,12 +107,11 @@ class Title {
void renderGameLogo(); // Dibuja el logo con el titulo del juego
void renderMainMenu(); // Dibuja el menu principal
void renderCheevosMenu(); // Dibuja el menu de logros
void renderControlsMenu(); // Dibuja el menu de controles
void renderKeyboardRemap(); // Dibuja la pantalla de redefinir teclado
void renderJoystickRemap(); // Dibuja la pantalla de redefinir joystick
void moveCheevosList(int direction, float delta_time); // Desplaza la lista de logros (time-based)
void handleControlsMenuKeyboardRemap(const SDL_Event& event); // Maneja la captura de teclas
void handleControlsMenuJoystickRemap(const SDL_Event& event); // Maneja la captura de botones del gamepad
void handleKeyboardRemap(const SDL_Event& event); // Maneja la captura de teclas
void handleJoystickRemap(const SDL_Event& event); // Maneja la captura de botones del gamepad
static auto isKeyValid(SDL_Scancode scancode) -> bool; // Valida si una tecla es permitida
auto isKeyDuplicate(SDL_Scancode scancode, int current_step) -> bool; // Valida si una tecla esta duplicada
auto isButtonDuplicate(int button, int current_step) -> bool; // Valida si un boton esta duplicado