diff options
| -rw-r--r-- | engines/scumm/resource_v4.cpp | 30 | 
1 files changed, 22 insertions, 8 deletions
| diff --git a/engines/scumm/resource_v4.cpp b/engines/scumm/resource_v4.cpp index 75858f7b42..808fcbd73e 100644 --- a/engines/scumm/resource_v4.cpp +++ b/engines/scumm/resource_v4.cpp @@ -199,14 +199,28 @@ void ScummEngine_v4::readGlobalObjects() {  	uint32 bits;  	byte tmp; -	for (i = 0; i != num; i++) { -		bits = _fileHandle->readByte(); -		bits |= _fileHandle->readByte() << 8; -		bits |= _fileHandle->readByte() << 16; -		_classData[i] = bits; -		tmp = _fileHandle->readByte(); -		_objectOwnerTable[i] = tmp & OF_OWNER_MASK; -		_objectStateTable[i] = tmp >> OF_STATE_SHL; +	if (_game.id == GID_LOOM && _game.platform == Common::kPlatformPCEngine) { +		for (i = 0; i != num; i++) { +			bits = _fileHandle->readByte(); +			bits |= _fileHandle->readByte() << 8; +			bits |= _fileHandle->readByte() << 16; +			_classData[i] = bits; +		} +		for (i = 0; i != num; i++) { +			tmp = _fileHandle->readByte(); +			_objectOwnerTable[i] = tmp & OF_OWNER_MASK; +			_objectStateTable[i] = tmp >> OF_STATE_SHL; +		} +	} else { +		for (i = 0; i != num; i++) { +			bits = _fileHandle->readByte(); +			bits |= _fileHandle->readByte() << 8; +			bits |= _fileHandle->readByte() << 16; +			_classData[i] = bits; +			tmp = _fileHandle->readByte(); +			_objectOwnerTable[i] = tmp & OF_OWNER_MASK; +			_objectStateTable[i] = tmp >> OF_STATE_SHL; +		}  	}  	// FIXME: Indy3 FM-TOWNS has 32 extra bytes of unknown meaning | 
