diff options
-rw-r--r-- | engines/parallaction/callables_ns.cpp | 3 | ||||
-rw-r--r-- | engines/parallaction/gui_ns.cpp | 1 | ||||
-rw-r--r-- | engines/parallaction/input.cpp | 4 | ||||
-rw-r--r-- | engines/parallaction/parallaction.h | 1 |
4 files changed, 8 insertions, 1 deletions
diff --git a/engines/parallaction/callables_ns.cpp b/engines/parallaction/callables_ns.cpp index 946c1a6b7a..65df3c4903 100644 --- a/engines/parallaction/callables_ns.cpp +++ b/engines/parallaction/callables_ns.cpp @@ -298,9 +298,11 @@ void Parallaction_ns::_c_trasformata(void *parm) { void Parallaction_ns::_c_offMouse(void *parm) { _input->setMouseState(MOUSE_DISABLED); + _engineFlags |= kEngineBlockInput; } void Parallaction_ns::_c_onMouse(void *parm) { + _engineFlags &= ~kEngineBlockInput; _input->setMouseState(MOUSE_ENABLED_SHOW); } @@ -444,6 +446,7 @@ void Parallaction_ns::_c_startIntro(void *parm) { _soundManI->playMusic(); } + _engineFlags |= kEngineBlockInput; _input->setMouseState(MOUSE_DISABLED); _intro = true; } diff --git a/engines/parallaction/gui_ns.cpp b/engines/parallaction/gui_ns.cpp index 6437e9f9bd..dc87d63b44 100644 --- a/engines/parallaction/gui_ns.cpp +++ b/engines/parallaction/gui_ns.cpp @@ -704,6 +704,7 @@ public: } _vm->_gfx->freeLabels(); + _engineFlags &= ~kEngineBlockInput; return _helper->getState("selectcharacter"); } diff --git a/engines/parallaction/input.cpp b/engines/parallaction/input.cpp index 42f60995ff..60cc867226 100644 --- a/engines/parallaction/input.cpp +++ b/engines/parallaction/input.cpp @@ -190,11 +190,13 @@ int Input::updateGameInput() { int event = kEvNone; if (!isMouseEnabled() || + (_engineFlags & kEngineBlockInput) || (_engineFlags & kEngineWalking) || (_engineFlags & kEngineChangeLocation)) { - debugC(3, kDebugInput, "updateGameInput: input flags (mouse: %i, walking: %i, changeloc: %i)", + debugC(3, kDebugInput, "updateGameInput: input flags (mouse: %i, block: %i, walking: %i, changeloc: %i)", isMouseEnabled(), + (_engineFlags & kEngineBlockInput) == 0, (_engineFlags & kEngineWalking) == 0, (_engineFlags & kEngineChangeLocation) == 0 ); diff --git a/engines/parallaction/parallaction.h b/engines/parallaction/parallaction.h index 10cee1e7b2..49be0ea53c 100644 --- a/engines/parallaction/parallaction.h +++ b/engines/parallaction/parallaction.h @@ -80,6 +80,7 @@ enum EngineFlags { kEnginePauseJobs = (1 << 1), kEngineWalking = (1 << 3), kEngineChangeLocation = (1 << 4), + kEngineBlockInput = (1 << 5), kEngineDragging = (1 << 6), kEngineTransformedDonna = (1 << 7), |