From 3a31e1de96a860b9f971cef939cb8a4aed8bcd5d Mon Sep 17 00:00:00 2001 From: RichieSams Date: Sun, 18 Jan 2015 20:22:02 -0600 Subject: ZVISION: Don't change location when coming back from ScummVM save dialog and do change location when coming back from restore 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. On restore, we have to force a location change, just in case we restore to the same room. (Since the logic will only do a location change if _nextLocation != _currentLocation) --- engines/zvision/scripting/script_manager.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'engines/zvision') diff --git a/engines/zvision/scripting/script_manager.cpp b/engines/zvision/scripting/script_manager.cpp index 4792a02045..b45f17a6f1 100644 --- a/engines/zvision/scripting/script_manager.cpp +++ b/engines/zvision/scripting/script_manager.cpp @@ -576,13 +576,14 @@ void ScriptManager::ChangeLocationReal() { _nextLocation.node = _currentLocation.node; _nextLocation.view = _currentLocation.view; _nextLocation.offset = _currentLocation.offset; - _currentLocation.world = '0'; + + return; + } else { + _currentLocation.world = 'g'; _currentLocation.room = '0'; _currentLocation.node = '0'; _currentLocation.view = '0'; _currentLocation.offset = 0; - } else { - return; } } } -- cgit v1.2.3