fix(input): impedeix que els events traspassin al joc en acabar el rebind

El menu de servei queda obert per sota de l'overlay DefineInputs durant
tot el rebind (en lloc de tancar-se al activar la accio), de manera que
absorbeix qualsevol KEY_DOWN que arribi un cop l'overlay s'auto-cancela.
La pantalla de titol tambe pausa la seua logica mentre el menu de servei
esta obert, igual que GameScene, per evitar que detecti un START fantasma
si l'usuari encara te una tecla pulsada al moment de tancar-se el modal.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
JailDesignerandClaude Opus 4.7 committed 2026-05-24 20:36:51 +02:00
1 parent 10a54aef91
commit c4933875dd
3 files changed
+18 -14

No files matched your search

+8
View File
@@ -18,6 +18,7 @@
#include "core/math/easing.hpp"
#include "core/rendering/shape_renderer.hpp"
#include "core/system/scene_context.hpp"
#include "core/system/service_menu.hpp"
#include "project.h"
using SceneManager::SceneContext;
@@ -294,6 +295,13 @@ auto TitleScene::isFinished() const -> bool {
}
void TitleScene::update(float delta_time) {
// Pausa global: mentre el menu de servei esta obert (i, per tant, el
// sub-overlay de rebind tambe, si esta actiu), congelem la logica de la
// pantalla de titol per no consumir un START fantasma quan l'overlay
// s'auto-tanca i les tecles encara s'estan pulsant.
if (const auto* menu = System::ServiceMenu::get(); menu != nullptr && menu->isOpen()) {
return;
}
if (starfield_) {
starfield_->update(delta_time);
}