diff options
| author | Max Horn | 2003-05-07 23:09:04 +0000 | 
|---|---|---|
| committer | Max Horn | 2003-05-07 23:09:04 +0000 | 
| commit | e6c8c462916d3a9885058913b212a3aa9639cc33 (patch) | |
| tree | 307c1cde5fefe92f757143bc833d571296969368 | |
| parent | b1145090f6b2dab6a249508bf17238bfa898681a (diff) | |
| download | scummvm-rg350-e6c8c462916d3a9885058913b212a3aa9639cc33.tar.gz scummvm-rg350-e6c8c462916d3a9885058913b212a3aa9639cc33.tar.bz2 scummvm-rg350-e6c8c462916d3a9885058913b212a3aa9639cc33.zip  | |
fixed bug #734057
svn-id: r7386
| -rw-r--r-- | scumm/script_v5.cpp | 21 | 
1 files changed, 13 insertions, 8 deletions
diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp index 30be92c18f..2eceedbfa5 100644 --- a/scumm/script_v5.cpp +++ b/scumm/script_v5.cpp @@ -1526,16 +1526,21 @@ void Scumm_v5::o5_resourceRoutines() {  	_opcode = fetchScriptByte();  	if (_opcode != 17)  		resid = getVarOrDirectByte(0x80); -	if (_gameId == GID_ZAK256) -		_opcode &= 0x3F; -	else -		_opcode &= 0x1F; +	if (_gameId != GID_ZAK256) { +		// FIXME - this probably can be removed eventually, I don't think the following +		// check will ever be triggered, but then I could be wrong and it's better +		// to play it safe. +		if((_opcode & 0x3F) != (_opcode & 0x1F)) +			error("Oops, this shouldn't happen: o5_resourceRoutines opcode %d", _opcode); +	} -	switch (_opcode) { +	int op = _opcode & 0x3F; + +	switch (_opcode & 0x3F) {  	case 1:											// load script  	case 2:											// load sound  	case 3:											// load costume -		ensureResourceLoaded(resType[_opcode-1], resid); +		ensureResourceLoaded(resType[op-1], resid);  		break;  	case 4:											// load room   		if (_features == GF_AFTER_V3) { @@ -1555,9 +1560,9 @@ void Scumm_v5::o5_resourceRoutines() {  	case 7:											// nuke costume  	case 8:											// nuke room  		if (_gameId == GID_ZAK256) -			warning("o5_resourceRoutines %d should not occur in Zak256", _opcode); +			warning("o5_resourceRoutines %d should not occur in Zak256", op);  		else -			setResourceCounter(resType[_opcode-5], resid, 0x7F); +			setResourceCounter(resType[op-5], resid, 0x7F);  		break;  	case 9:											// lock script  | 
