From b835eacc0cd401bb0d15a33e60d2ac47ebb4d718 Mon Sep 17 00:00:00 2001 From: RichieSams Date: Sun, 18 Jan 2015 19:26:49 -0600 Subject: ZVISION: Don't change location when coming back from ScummVM save dialog Fixes bug # 6771 We don't need to change locations, since we use the ScummVM save dialog instead of the original one (which is actually a location). Instead we just need to reset _nextLocation to _currentLocation so the engine can stop trying to save. If we change locations, the StateKey_LastWorld/Room/etc. end up being overwritten with the current room. So if a script refers to location 0, 0, 0, 0 (aka, the last room), the engine will try to change location to the same room. --- engines/zvision/scripting/script_manager.cpp | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'engines') diff --git a/engines/zvision/scripting/script_manager.cpp b/engines/zvision/scripting/script_manager.cpp index 4792a02045..a4ab4579b5 100644 --- a/engines/zvision/scripting/script_manager.cpp +++ b/engines/zvision/scripting/script_manager.cpp @@ -576,11 +576,8 @@ void ScriptManager::ChangeLocationReal() { _nextLocation.node = _currentLocation.node; _nextLocation.view = _currentLocation.view; _nextLocation.offset = _currentLocation.offset; - _currentLocation.world = '0'; - _currentLocation.room = '0'; - _currentLocation.node = '0'; - _currentLocation.view = '0'; - _currentLocation.offset = 0; + + return; } else { return; } @@ -743,11 +740,6 @@ void ScriptManager::deserialize(Common::SeekableReadStream *stream) { cleanScriptScope(room); cleanScriptScope(world); - _currentLocation.node = 0; - _currentLocation.world = 0; - _currentLocation.room = 0; - _currentLocation.view = 0; - for (SideFXList::iterator iter = _activeSideFx.begin(); iter != _activeSideFx.end(); iter++) { delete(*iter); } -- cgit v1.2.3