diff options
| -rw-r--r-- | engines/mohawk/myst.cpp | 6 | ||||
| -rw-r--r-- | engines/mohawk/myst_stacks/intro.cpp | 16 | ||||
| -rw-r--r-- | engines/mohawk/myst_stacks/intro.h | 1 | 
3 files changed, 20 insertions, 3 deletions
| diff --git a/engines/mohawk/myst.cpp b/engines/mohawk/myst.cpp index f0c63f90f7..ed92f6081e 100644 --- a/engines/mohawk/myst.cpp +++ b/engines/mohawk/myst.cpp @@ -388,6 +388,7 @@ void MohawkEngine_Myst::changeToStack(uint16 stack) {  	switch (_curStack) {  	case kChannelwoodStack: +		_saveLoad->_v->globals.currentAge = 4;  		_scriptParser = new MystScriptParser_Channelwood(this);  		break;  	case kCreditsStack: @@ -397,6 +398,7 @@ void MohawkEngine_Myst::changeToStack(uint16 stack) {  		_scriptParser = new MystScriptParser_Demo(this);  		break;  	case kDniStack: +		_saveLoad->_v->globals.currentAge = 6;  		_scriptParser = new MystScriptParser_Dni(this);  		break;  	case kIntroStack: @@ -406,21 +408,25 @@ void MohawkEngine_Myst::changeToStack(uint16 stack) {  		_scriptParser = new MystScriptParser_MakingOf(this);  		break;  	case kMechanicalStack: +		_saveLoad->_v->globals.currentAge = 3;  		_scriptParser = new MystScriptParser_Mechanical(this);  		break;  	case kMystStack: +		_saveLoad->_v->globals.currentAge = 2;  		_scriptParser = new MystScriptParser_Myst(this);  		break;  	case kDemoPreviewStack:  		_scriptParser = new MystScriptParser_Preview(this);  		break;  	case kSeleniticStack: +		_saveLoad->_v->globals.currentAge = 0;  		_scriptParser = new MystScriptParser_Selenitic(this);  		break;  	case kDemoSlidesStack:  		_scriptParser = new MystScriptParser_Slides(this);  		break;  	case kStoneshipStack: +		_saveLoad->_v->globals.currentAge = 1;  		_scriptParser = new MystScriptParser_Stoneship(this);  		break;  	default: diff --git a/engines/mohawk/myst_stacks/intro.cpp b/engines/mohawk/myst_stacks/intro.cpp index a0df5cf2e2..0741c22e1f 100644 --- a/engines/mohawk/myst_stacks/intro.cpp +++ b/engines/mohawk/myst_stacks/intro.cpp @@ -26,6 +26,7 @@  #include "mohawk/myst.h"  #include "mohawk/graphics.h"  #include "mohawk/myst_areas.h" +#include "mohawk/myst_saveload.h"  #include "mohawk/sound.h"  #include "mohawk/video.h"  #include "mohawk/myst_stacks/intro.h" @@ -63,6 +64,15 @@ void MystScriptParser_Intro::disablePersistentScripts() {  void MystScriptParser_Intro::runPersistentScripts() {  } +uint16 MystScriptParser_Intro::getVar(uint16 var) { +	switch(var) { +	case 0: +		return _vm->_saveLoad->_v->globals.currentAge; +	default: +		return MystScriptParser::getVar(var); +	} +} +  void MystScriptParser_Intro::o_useLinkBook(uint16 op, uint16 var, uint16 argc, uint16 *argv) {  	// Hard coded SoundId valid only for Intro Stack.  	// Other stacks use Opcode 40, which takes SoundId values as arguments. @@ -72,7 +82,7 @@ void MystScriptParser_Intro::o_useLinkBook(uint16 op, uint16 var, uint16 argc, u  	debugC(kDebugScript, "\tvar: %d", var);  	// TODO: Merge with changeStack (Opcode 40) Implementation? -	if (_vm->_varStore->getVar(var) == 5 || _vm->_varStore->getVar(var) > 7) { +	if (getVar(var) == 5 || getVar(var) > 7) {  		// TODO: Dead Book i.e. Released Sirrus/Achenar  	} else {  		// Play Linking Sound, blocking... @@ -84,7 +94,7 @@ void MystScriptParser_Intro::o_useLinkBook(uint16 op, uint16 var, uint16 argc, u  		// Play Flyby Entry Movie on Masterpiece Edition. The Macintosh version is currently hooked  		// up to the Cinepak versions of the video (the 'c' suffix) until the SVQ1 decoder is completed.  		if ((_vm->getFeatures() & GF_ME)) { -			switch (_stackMap[_vm->_varStore->getVar(var)]) { +			switch (_stackMap[getVar(var)]) {  			case kSeleniticStack:  				if (_vm->getPlatform() == Common::kPlatformMacintosh)  					_vm->_video->playMovieCentered(_vm->wrapMovieFilename("FLY_SEc", kMasterpieceOnly)); @@ -123,7 +133,7 @@ void MystScriptParser_Intro::o_useLinkBook(uint16 op, uint16 var, uint16 argc, u  			}  		} -		uint16 varValue = _vm->_varStore->getVar(var); +		uint16 varValue = getVar(var);  		_vm->changeToStack(_stackMap[varValue]);  		_vm->changeToCard(_startCard[varValue], true); diff --git a/engines/mohawk/myst_stacks/intro.h b/engines/mohawk/myst_stacks/intro.h index 78dc3bcaee..fc2ae5e1e7 100644 --- a/engines/mohawk/myst_stacks/intro.h +++ b/engines/mohawk/myst_stacks/intro.h @@ -47,6 +47,7 @@ public:  private:  	void setupOpcodes(); +	uint16 getVar(uint16 var);  	DECLARE_OPCODE(o_useLinkBook); | 
