diff options
| author | Travis Howell | 2006-02-11 00:44:04 +0000 | 
|---|---|---|
| committer | Travis Howell | 2006-02-11 00:44:04 +0000 | 
| commit | 44763fcce90a9ccfb40d1430e015b45546f08569 (patch) | |
| tree | a79a216ba70de56ecda55789a2db85d3873bd86a | |
| parent | 590289d937be8104f03a22727f0796c22106ffda (diff) | |
| download | scummvm-rg350-44763fcce90a9ccfb40d1430e015b45546f08569.tar.gz scummvm-rg350-44763fcce90a9ccfb40d1430e015b45546f08569.tar.bz2 scummvm-rg350-44763fcce90a9ccfb40d1430e015b45546f08569.zip | |
Add support for Spanish version of balloon
svn-id: r20484
| -rw-r--r-- | scumm/intern_he.h | 1 | ||||
| -rw-r--r-- | scumm/script.cpp | 16 | ||||
| -rw-r--r-- | scumm/script_v100he.cpp | 2 | ||||
| -rw-r--r-- | scumm/script_v72he.cpp | 10 | ||||
| -rw-r--r-- | scumm/script_v8.cpp | 12 | ||||
| -rw-r--r-- | scumm/script_v80he.cpp | 7 | ||||
| -rw-r--r-- | scumm/script_v90he.cpp | 2 | ||||
| -rw-r--r-- | scumm/scumm-md5.h | 3 | ||||
| -rw-r--r-- | scumm/scumm.h | 2 | ||||
| -rw-r--r-- | tools/scumm-md5.txt | 1 | 
10 files changed, 33 insertions, 23 deletions
| diff --git a/scumm/intern_he.h b/scumm/intern_he.h index 1bd8e5afa2..1011d1b31f 100644 --- a/scumm/intern_he.h +++ b/scumm/intern_he.h @@ -370,6 +370,7 @@ protected:  	void o80_stringToInt();  	void o80_getSoundVar();  	void o80_localizeArrayToRoom(); +	void o80_sourceDebug();  	void o80_readConfigFile();  	void o80_writeConfigFile();  	void o80_cursorCommand(); diff --git a/scumm/script.cpp b/scumm/script.cpp index f2562fef52..a3dee09d69 100644 --- a/scumm/script.cpp +++ b/scumm/script.cpp @@ -495,6 +495,22 @@ int ScummEngine::fetchScriptWordSigned() {  	return (int16)fetchScriptWord();  } +uint ScummEngine::fetchScriptDWord() { +	int a; +	if (*_lastCodePtr + sizeof(MemBlkHeader) != _scriptOrgPointer) { +		uint32 oldoffs = _scriptPointer - _scriptOrgPointer; +		getScriptBaseAddress(); +		_scriptPointer = _scriptOrgPointer + oldoffs; +	} +	a = READ_LE_UINT32(_scriptPointer); +	_scriptPointer += 4; +	return a; +} + +int ScummEngine::fetchScriptDWordSigned() { +	return (int32)fetchScriptDWord(); +} +  int ScummEngine::readVar(uint var) {  	int a; diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp index 091f2d55cc..9b1a3e8183 100644 --- a/scumm/script_v100he.cpp +++ b/scumm/script_v100he.cpp @@ -190,7 +190,7 @@ void ScummEngine_v100he::setupOpcodes() {  		OPCODE(o6_delaySeconds),  		OPCODE(o100_startSound),  		/* 78 */ -		OPCODE(o6_invalid), +		OPCODE(o80_sourceDebug),  		OPCODE(o100_setSpriteInfo),  		OPCODE(o6_stampObject),  		OPCODE(o72_startObject), diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp index 8b335bf425..3501a88d41 100644 --- a/scumm/script_v72he.cpp +++ b/scumm/script_v72he.cpp @@ -766,15 +766,7 @@ int ScummEngine_v72he::findObject(int x, int y, int num, int *args) {  }  void ScummEngine_v72he::o72_pushDWord() { -	int a; -	if (*_lastCodePtr + sizeof(MemBlkHeader) != _scriptOrgPointer) { -		uint32 oldoffs = _scriptPointer - _scriptOrgPointer; -		getScriptBaseAddress(); -		_scriptPointer = _scriptOrgPointer + oldoffs; -	} -	a = READ_LE_UINT32(_scriptPointer); -	_scriptPointer += 4; -	push(a); +	push(fetchScriptDWordSigned());  }  void ScummEngine_v72he::o72_getScriptString() { diff --git a/scumm/script_v8.cpp b/scumm/script_v8.cpp index 72e5890b11..3ac41d51b6 100644 --- a/scumm/script_v8.cpp +++ b/scumm/script_v8.cpp @@ -377,19 +377,11 @@ const char *ScummEngine_v8::getOpcodeDesc(byte i) {  // In V8, the word size is 4 byte, not 2 bytes as in V6/V7 games  uint ScummEngine_v8::fetchScriptWord() { -	int a; -	if (*_lastCodePtr + sizeof(MemBlkHeader) != _scriptOrgPointer) { -		uint32 oldoffs = _scriptPointer - _scriptOrgPointer; -		getScriptBaseAddress(); -		_scriptPointer = _scriptOrgPointer + oldoffs; -	} -	a = READ_LE_UINT32(_scriptPointer); -	_scriptPointer += 4; -	return a; +	return fetchScriptDWord();  }  int ScummEngine_v8::fetchScriptWordSigned() { -	return (int32)fetchScriptWord(); +	return (int32)fetchScriptDWordSigned();  }  int ScummEngine_v8::readVar(uint var) { diff --git a/scumm/script_v80he.cpp b/scumm/script_v80he.cpp index 46fa09962a..a810332c94 100644 --- a/scumm/script_v80he.cpp +++ b/scumm/script_v80he.cpp @@ -138,7 +138,7 @@ void ScummEngine_v80he::setupOpcodes() {  		OPCODE(o80_localizeArrayToRoom),  		OPCODE(o6_wordArrayIndexedWrite),  		/* 4C */ -		OPCODE(o6_invalid), +		OPCODE(o80_sourceDebug),  		OPCODE(o80_readConfigFile),  		OPCODE(o80_writeConfigFile),  		OPCODE(o6_wordVarInc), @@ -439,6 +439,11 @@ void ScummEngine_v80he::o80_localizeArrayToRoom() {  	localizeArray(slot, 0xFF);  } +void ScummEngine_v80he::o80_sourceDebug() { +	fetchScriptDWord(); +	fetchScriptDWord(); +} +  void ScummEngine_v80he::o80_readConfigFile() {  	byte option[128], section[128], filename[256];  	ArrayHeader *ah; diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp index e4a41c6f56..6708d072a2 100644 --- a/scumm/script_v90he.cpp +++ b/scumm/script_v90he.cpp @@ -136,7 +136,7 @@ void ScummEngine_v90he::setupOpcodes() {  		OPCODE(o80_localizeArrayToRoom),  		OPCODE(o6_wordArrayIndexedWrite),  		/* 4C */ -		OPCODE(o6_invalid), +		OPCODE(o80_sourceDebug),  		OPCODE(o80_readConfigFile),  		OPCODE(o80_writeConfigFile),  		OPCODE(o6_wordVarInc), diff --git a/scumm/scumm-md5.h b/scumm/scumm-md5.h index 9948a2ab27..f442f38ba3 100644 --- a/scumm/scumm-md5.h +++ b/scumm/scumm-md5.h @@ -1,5 +1,5 @@  /* -  This file was generated by the md5table tool on Sat Jan 21 12:36:17 2006 +  This file was generated by the md5table tool on Sat Feb 11 00:38:53 2006    DO NOT EDIT MANUALLY!   */ @@ -80,6 +80,7 @@ static const MD5Table md5table[] = {  	{ "2108d83dcf09f8adb4bc524669c8cf51", "PuttTime", Common::EN_USA, Common::kPlatformUnknown },  	{ "21a6592322f92550f144f68a8a4e685e", "dig", Common::FR_FRA, Common::kPlatformMacintosh },  	{ "21abe302e1b1e2b66d6f5c12e241ebfd", "freddicove", Common::RU_RUS, Common::kPlatformWindows }, +	{ "2232b0b9411575b1f9961713ebc9de61", "balloon", Common::ES_ESP, Common::kPlatformWindows },  	{ "225e18566e810c634bf7de63e7568e3e", "mustard", Common::EN_USA, Common::kPlatformUnknown },  	{ "22c9eb04455440131ffc157aeb8d40a8", "fbear", Common::EN_USA, Common::kPlatformWindows },  	{ "22d07d6c386c9c25aca5dac2a0c0d94b", "maniac", Common::SE_SWE, Common::kPlatformNES }, diff --git a/scumm/scumm.h b/scumm/scumm.h index 92c0ea54ad..d2ba99a355 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -677,6 +677,8 @@ protected:  	byte fetchScriptByte();  	virtual uint fetchScriptWord();  	virtual int fetchScriptWordSigned(); +	uint fetchScriptDWord(); +	int fetchScriptDWordSigned();  	void ignoreScriptWord() { fetchScriptWord(); }  	void ignoreScriptByte() { fetchScriptByte(); }  	virtual void getResultPos(); diff --git a/tools/scumm-md5.txt b/tools/scumm-md5.txt index 7cbd0a4e4f..eb2ec3a13b 100644 --- a/tools/scumm-md5.txt +++ b/tools/scumm-md5.txt @@ -565,6 +565,7 @@ Putt-Putt and Pep's Balloon-O-Rama  	CD	All	en	8e3241ddd6c8dadf64305e8740d45e13	balloon	Kirben  	CD	Windows	en	d7b247c26bf1f01f8f7daf142be84de3	balloon	iziku  	CD	Windows	ru	145bd3373574feb668cc2eea2ec6cf86	balloon	sev +	CD	Windows	es	2232b0b9411575b1f9961713ebc9de61	balloon	exiltd  Putt-Putt and Pep's Dog on a Stick  	CD	All	en	eae95b2b3546d8ba86ae1d397c383253	dog	Kirben | 
