diff options
| author | David Turner | 2010-12-19 02:27:09 +0000 | 
|---|---|---|
| committer | David Turner | 2010-12-19 02:27:09 +0000 | 
| commit | e9e09d297c949bfe09ab9e17fa017fe95eb1388b (patch) | |
| tree | ee7830f4c7029a5f227d29e255b5801272307e71 | |
| parent | fd5b8b7fa0765aaa67953a1ef343afcfc6a4c0f9 (diff) | |
| download | scummvm-rg350-e9e09d297c949bfe09ab9e17fa017fe95eb1388b.tar.gz scummvm-rg350-e9e09d297c949bfe09ab9e17fa017fe95eb1388b.tar.bz2 scummvm-rg350-e9e09d297c949bfe09ab9e17fa017fe95eb1388b.zip | |
MOHAWK: Added further var getter and setter code for Myst Island.
This fixes Stellar Observatory Lights.
svn-id: r54958
| -rw-r--r-- | engines/mohawk/myst_stacks/myst.cpp | 39 | 
1 files changed, 29 insertions, 10 deletions
| diff --git a/engines/mohawk/myst_stacks/myst.cpp b/engines/mohawk/myst_stacks/myst.cpp index 3a633bb351..55f66e265c 100644 --- a/engines/mohawk/myst_stacks/myst.cpp +++ b/engines/mohawk/myst_stacks/myst.cpp @@ -393,28 +393,26 @@ uint16 MystScriptParser_Myst::getVar(uint16 var) {  		return bookCountPages(100);  	case 47:  		return bookCountPages(101); +	case 48: +		if (myst.shipState) +			return 2; +		else if (myst.dockMarkerSwitch) +			return 1; +		else +			return 0;  	case 49: // Generator running  		return myst.generatorVoltage > 0;  	case 52: // Generator Switch #1 -		return (myst.generatorButtons & 1) != 0;  	case 53: // Generator Switch #2 -		return (myst.generatorButtons & 2) != 0;  	case 54: // Generator Switch #3 -		return (myst.generatorButtons & 4) != 0;  	case 55: // Generator Switch #4 -		return (myst.generatorButtons & 8) != 0;  	case 56: // Generator Switch #5 -		return (myst.generatorButtons & 16) != 0;  	case 57: // Generator Switch #6 -		return (myst.generatorButtons & 32) != 0;  	case 58: // Generator Switch #7 -		return (myst.generatorButtons & 64) != 0;  	case 59: // Generator Switch #8 -		return (myst.generatorButtons & 128) != 0;  	case 60: // Generator Switch #9 -		return (myst.generatorButtons & 256) != 0;  	case 61: // Generator Switch #10 -		return (myst.generatorButtons & 512) != 0; +		return (myst.generatorButtons & (1 << (var - 52))) != 0;  	case 62: // Generator Power Dial Left LED Digit  		return _generatorVoltage / 10;  	case 63: // Generator Power Dial Right LED Digit @@ -439,8 +437,26 @@ uint16 MystScriptParser_Myst::getVar(uint16 var) {  		return myst.cabinSafeCombination % 10;  	case 70: // Cabin Safe Matchbox State  		return _cabinMatchState; +	case 71: // Stellar Observatory Lights +		return myst.observatoryLights;  	case 72: // Channelwood tree position  		return myst.treePosition; +	case 80: // Stellar Observatory Hour #1 - Left ( Number 1 (0) or Blank (10)) +		if (myst.observatoryTimeSetting % (12 * 60) < (10 * 60)) +			return 10; +		else +			return 0; +	case 81: // Stellar Observatory Hour #2 - Right +		return ((myst.observatoryTimeSetting % (12 * 60)) / 60) % 10; +	case 82: // Stellar Observatory Minutes #1 - Left +		return (myst.observatoryTimeSetting % 60) / 10; +	case 83: // Stellar Observatory Minutes #2 - Right +		return (myst.observatoryTimeSetting % 60) % 10; +	case 88: // Stellar Observatory AM/PM +		if (myst.observatoryTimeSetting < (12 * 60)) +			return 0; // AM +		else +			return 1; // PM  	case 93: // Breaker nearest Generator Room Blown  		return myst.generatorBreakers == 1;  	case 94: // Breaker nearest Rocket Ship Blown @@ -605,6 +621,9 @@ bool MystScriptParser_Myst::setVarValue(uint16 var, uint16 value) {  			refresh = true;  		}  		break; +	case 71: // Stellar Observatory Lights +		myst.observatoryLights = value; +		break;  	case 302: // Green Book Opened Before Flag  		myst.greenBookOpenedBefore = value;  		break; | 
