From a55cb7fa10548862b19d50fa4d4487336f0339c5 Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Fri, 2 Apr 2010 12:51:42 +0000 Subject: Fix bug #2979193 - NIPPON: Crash at character introduction (regression). By restoring the kEngineBlockInput engine flag. svn-id: r48464 --- engines/parallaction/callables_ns.cpp | 3 +++ engines/parallaction/gui_ns.cpp | 1 + engines/parallaction/input.cpp | 4 +++- engines/parallaction/parallaction.h | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) (limited to 'engines/parallaction') 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), -- cgit v1.2.3