aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/draci/game.cpp17
-rw-r--r--engines/draci/game.h4
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;
};