aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Bouclet2014-07-08 19:57:55 +0200
committerBastien Bouclet2014-07-08 20:13:29 +0200
commit131dcb0aad42359a78db75d383c2cc6fc550c55f (patch)
treec0776abac1cee8138bc7f1235bcb2339db908d17
parent140b61cba95fd6a266040fa02d436710704d82de (diff)
downloadscummvm-rg350-131dcb0aad42359a78db75d383c2cc6fc550c55f.tar.gz
scummvm-rg350-131dcb0aad42359a78db75d383c2cc6fc550c55f.tar.bz2
scummvm-rg350-131dcb0aad42359a78db75d383c2cc6fc550c55f.zip
MOHAWK: Reset some Myst state variables as per the original
This fixes a bug where the player could be stuck on Channelwood's lower level with the elevator on the upper level. This also turns the light off on Stoneship when entering the age, since the battery is depleted. Thanks to dtungsten for submitting this fix in PR#478.
-rw-r--r--engines/mohawk/myst_stacks/stoneship.cpp1
-rw-r--r--engines/mohawk/myst_state.cpp3
2 files changed, 4 insertions, 0 deletions
diff --git a/engines/mohawk/myst_stacks/stoneship.cpp b/engines/mohawk/myst_stacks/stoneship.cpp
index 710c36ac8d..d8dbeef641 100644
--- a/engines/mohawk/myst_stacks/stoneship.cpp
+++ b/engines/mohawk/myst_stacks/stoneship.cpp
@@ -42,6 +42,7 @@ Stoneship::Stoneship(MohawkEngine_Myst *vm) :
_tunnelRunning = false;
+ _state.lightState = 0;
_state.generatorDepletionTime = 0;
_state.generatorDuration = 0;
_cabinMystBookPresent = 0;
diff --git a/engines/mohawk/myst_state.cpp b/engines/mohawk/myst_state.cpp
index d07aa9d5ec..3e54017df8 100644
--- a/engines/mohawk/myst_state.cpp
+++ b/engines/mohawk/myst_state.cpp
@@ -100,6 +100,9 @@ bool MystGameState::load(const Common::String &filename) {
syncGameState(s, size == 664);
delete loadFile;
+ // Set Channelwood elevator state to down, because we start on the lower level
+ _channelwood.elevatorState = 0;
+
// Switch us back to the intro stack, to the linking book
_vm->changeToStack(kIntroStack, 5, 0, 0);