diff options
| author | Travis Howell | 2005-11-18 14:15:03 +0000 | 
|---|---|---|
| committer | Travis Howell | 2005-11-18 14:15:03 +0000 | 
| commit | 8ec6ed9d968ed44a4b2a67ac6652c60f31c6492f (patch) | |
| tree | d338a89c20c707957334bf10337039f1269bbd49 | |
| parent | 95a45fc7a05430e0952d5dc8e61a091bb10494ed (diff) | |
| download | scummvm-rg350-8ec6ed9d968ed44a4b2a67ac6652c60f31c6492f.tar.gz scummvm-rg350-8ec6ed9d968ed44a4b2a67ac6652c60f31c6492f.tar.bz2 scummvm-rg350-8ec6ed9d968ed44a4b2a67ac6652c60f31c6492f.zip | |
Updates to FF path finding.
svn-id: r19641
| -rw-r--r-- | simon/items.cpp | 26 | ||||
| -rw-r--r-- | simon/simon.cpp | 8 | ||||
| -rw-r--r-- | simon/simon.h | 10 | ||||
| -rw-r--r-- | simon/vga.cpp | 17 | 
4 files changed, 45 insertions, 16 deletions
| diff --git a/simon/items.cpp b/simon/items.cpp index 70d1e332a4..b9081ec04d 100644 --- a/simon/items.cpp +++ b/simon/items.cpp @@ -1096,25 +1096,31 @@ int SimonEngine::runScript() {  		// Feeble opcodes  		case 191: -			warning("STUB: script opcode 191");  			if (_bitArray[5] & 0x0008) { -				// Clear some variables +				_PVCount1 = 0; +				_GPVCount1 = 0;  			} else { -				// Clear some other variables +				_PVCount = 0; +				_GPVCount = 0;  			}  			break;  		case 192:{ -				uint a = getVarOrByte(); -				uint b = getVarOrByte(); -				uint c = getVarOrByte(); -				uint d = getVarOrByte(); +				uint8 a = getVarOrByte(); +				uint8 b = getVarOrByte(); +				uint8 c = getVarOrByte(); +				uint8 d = getVarOrByte();  				if (_bitArray[5] & 0x0008) { -					// Set some variables +					_pathValues1[_PVCount1++] = a; +					_pathValues1[_PVCount1++] = b; +					_pathValues1[_PVCount1++] = c; +					_pathValues1[_PVCount1++] = d;  				} else { -					// Set some other variables +					_pathValues[_PVCount++] = a; +					_pathValues[_PVCount++] = b; +					_pathValues[_PVCount++] = c; +					_pathValues[_PVCount++] = d;  				} -				warning("STUB: script opcode 192 (%d, %d, %d, %d)", a, b, c, d);  			}  			break; diff --git a/simon/simon.cpp b/simon/simon.cpp index 90c5f30520..485a83e48b 100644 --- a/simon/simon.cpp +++ b/simon/simon.cpp @@ -468,6 +468,14 @@ SimonEngine::SimonEngine(GameDetector *detector, OSystem *syst)  	memset(_pathFindArray, 0, sizeof(_pathFindArray)); +	memset(_pathValues, 0, sizeof(_pathValues)); +	_PVCount = 0; +	_GPVCount = 0; + +	memset(_pathValues1, 0, sizeof(_pathValues1)); +	_PVCount1 = 0; +	_GPVCount1 = 0; +  	memset(_paletteBackup, 0, sizeof(_paletteBackup));  	memset(_palette, 0, sizeof(_palette)); diff --git a/simon/simon.h b/simon/simon.h index 457fb4616f..ddb4c1123b 100644 --- a/simon/simon.h +++ b/simon/simon.h @@ -379,6 +379,14 @@ protected:  	const uint16 *_pathFindArray[100]; +	uint8 _pathValues[100]; +	uint8 _PVCount; +	uint8 _GPVCount; + +	uint8 _pathValues1[100]; +	uint8 _PVCount1; +	uint8 _GPVCount1; +  	uint8 _paletteBackup[1024];  	uint8 _palette[1024]; @@ -753,7 +761,7 @@ public:  	void vc79_computePosNum();  	void vc80_setOverlayImage();  	void vc81_setRandom(); -	void vc82_pathUnk3(); +	void vc82_getPathValue();  	void vc83_playSoundLoop();  	void vc84_stopSoundLoop(); diff --git a/simon/vga.cpp b/simon/vga.cpp index 71ded468ef..bca0b8069f 100644 --- a/simon/vga.cpp +++ b/simon/vga.cpp @@ -114,7 +114,7 @@ void SimonEngine::setupVgaOpcodes() {  		&SimonEngine::vc79_computePosNum,  		&SimonEngine::vc80_setOverlayImage,  		&SimonEngine::vc81_setRandom, -		&SimonEngine::vc82_pathUnk3, +		&SimonEngine::vc82_getPathValue,  		&SimonEngine::vc83_playSoundLoop,  		&SimonEngine::vc84_stopSoundLoop,  	}; @@ -2163,11 +2163,18 @@ void SimonEngine::vc81_setRandom() {  	writeVariable(var, _rnd.getRandomNumber(value - 1));  } -void SimonEngine::vc82_pathUnk3() { -	// Set var to path position -	int var = vc_read_next_word(); +void SimonEngine::vc82_getPathValue() { +	uint8 val; + +	uint16 var = vc_read_next_word(); + +	if (vc_get_bit(88) == true) { +		val = _pathValues1[_GPVCount1++]; +	} else { +		val = _pathValues[_GPVCount++]; +	} -	debug(0, "STUB: vc82_pathUnk3: var %d", var); +	writeVariable(var, val);  }  void SimonEngine::vc83_playSoundLoop() { | 
