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)
This commit is contained in:
parent
0fafb6a62c
commit
3a31e1de96
1 changed files with 4 additions and 3 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue