diff options
-rw-r--r-- | engines/draci/game.cpp | 17 | ||||
-rw-r--r-- | engines/draci/game.h | 4 |
2 files changed, 8 insertions, 13 deletions
diff --git a/engines/draci/game.cpp b/engines/draci/game.cpp index 94c7c1fc31..72e431bf44 100644 --- a/engines/draci/game.cpp +++ b/engines/draci/game.cpp @@ -82,15 +82,13 @@ Game::Game(DraciEngine *vm) : _vm(vm) { _info->_numDialogs = gameData.readByte(); _info->_maxIconWidth = gameData.readUint16LE(); _info->_maxIconHeight = gameData.readUint16LE(); - _info->_musicLength = gameData.readUint32LE(); + _info->_musicLength = gameData.readUint16LE(); + _info->_crc[0] = gameData.readUint16LE(); + _info->_crc[1] = gameData.readUint16LE(); + _info->_crc[2] = gameData.readUint16LE(); + _info->_crc[3] = gameData.readUint16LE(); -// FIXME: Something is wrong here. The total file length is only 23 bytes -// but the whole struct should be 35 bytes. - _info->_crc[0] = gameData.readUint32LE(); - _info->_crc[1] = gameData.readUint32LE(); - _info->_crc[2] = gameData.readUint32LE(); - _info->_crc[3] = gameData.readUint32LE(); - _info->_numDialogBlocks = gameData.readUint16LE(); + _info->_numDialogBlocks = curOffset; // Read in variables @@ -123,9 +121,6 @@ Game::Game(DraciEngine *vm) : _vm(vm) { assert(numVariables == _info->_numVariables); assert(numObjects == _info->_numObjects); -// TODO: Why is this failing? -// assert(curOffset == _info->_numDialogBlocks); - loadObject(0, &_heroObj); _vm->_script->run(_heroObj._program, _heroObj._init); } diff --git a/engines/draci/game.h b/engines/draci/game.h index bdbb402795..abefb0f963 100644 --- a/engines/draci/game.h +++ b/engines/draci/game.h @@ -65,8 +65,8 @@ struct GameInfo { byte _numPersons; byte _numDialogs; uint16 _maxIconWidth, _maxIconHeight; - uint32 _musicLength; - uint32 _crc[4]; + uint16 _musicLength; + uint16 _crc[4]; uint16 _numDialogBlocks; }; |