aboutsummaryrefslogtreecommitdiff
path: root/engines/draci/game.cpp
diff options
context:
space:
mode:
authorDenis Kasak2009-06-29 22:27:38 +0000
committerDenis Kasak2009-06-29 22:27:38 +0000
commit138d17bbabd5e5639b6aab24f1c2a0b75a9384f7 (patch)
treefdcdd3a657bd6f2429a1983e4fe863d828ef41fd /engines/draci/game.cpp
parent63aa2b7aafefbd1611ac8f6cbf1f55339b5d9a74 (diff)
downloadscummvm-rg350-138d17bbabd5e5639b6aab24f1c2a0b75a9384f7.tar.gz
scummvm-rg350-138d17bbabd5e5639b6aab24f1c2a0b75a9384f7.tar.bz2
scummvm-rg350-138d17bbabd5e5639b6aab24f1c2a0b75a9384f7.zip
Changed some data members in Draci::GameInfo from uint32 to uint16 (previously I thought that the 'word' type in the original engine was 32 bits). Removed a FIXME concerning struct size mismatch (matches when the previous sentence is taken into account). GameInfo::_numDialogBlocks is now calculated, not read in (it wasn't stored in the data files at all).
svn-id: r41966
Diffstat (limited to 'engines/draci/game.cpp')
-rw-r--r--engines/draci/game.cpp17
1 files changed, 6 insertions, 11 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);
}