claude: acabat de posar tot lo que deia i reventa. Debuggar

This commit is contained in:
2025-08-06 20:31:47 +02:00
parent 6d36291f51
commit 49145905e3
8 changed files with 131 additions and 67 deletions

View File

@@ -16,7 +16,6 @@
#include "section.hpp" // Para Name, name, Options, options
#include "ui/ui_message.h" // Para UIMessage
#include "utils.h" // Para Zone
#include "action_list_option.h" // Para ActionListOption
#include "define_buttons.h" // Para DefineButtons
// Singleton
@@ -541,4 +540,76 @@ void ServiceMenu::setHiddenOptions() {
}
updateMenu(); // El menú debe refrescarse si algo se oculta
}
void ServiceMenu::handleEvent(const SDL_Event &event) {
if (!enabled_) {
return;
}
// Si DefineButtons está activo, que maneje todos los eventos
if (define_buttons_ && define_buttons_->isEnabled()) {
define_buttons_->checkEvents(event);
return; // No procesar otros eventos mientras DefineButtons está activo
}
// Procesar eventos normales del ServiceMenu
switch (event.type) {
case SDL_EVENT_KEY_DOWN:
switch (event.key.key) {
case SDLK_ESCAPE:
case SDLK_BACKSPACE:
moveBack();
break;
case SDLK_RETURN:
case SDLK_KP_ENTER:
selectOption();
break;
case SDLK_UP:
setSelectorUp();
break;
case SDLK_DOWN:
setSelectorDown();
break;
case SDLK_LEFT:
adjustOption(false);
break;
case SDLK_RIGHT:
adjustOption(true);
break;
default:
break;
}
break;
case SDL_EVENT_GAMEPAD_BUTTON_DOWN:
switch (event.gbutton.button) {
case SDL_GAMEPAD_BUTTON_SOUTH:
case SDL_GAMEPAD_BUTTON_BACK:
moveBack();
break;
case SDL_GAMEPAD_BUTTON_EAST:
case SDL_GAMEPAD_BUTTON_START:
selectOption();
break;
case SDL_GAMEPAD_BUTTON_DPAD_UP:
setSelectorUp();
break;
case SDL_GAMEPAD_BUTTON_DPAD_DOWN:
setSelectorDown();
break;
case SDL_GAMEPAD_BUTTON_DPAD_LEFT:
adjustOption(false);
break;
case SDL_GAMEPAD_BUTTON_DPAD_RIGHT:
adjustOption(true);
break;
default:
break;
}
break;
default:
break;
}
}