From 138d17bbabd5e5639b6aab24f1c2a0b75a9384f7 Mon Sep 17 00:00:00 2001 From: Denis Kasak Date: Mon, 29 Jun 2009 22:27:38 +0000 Subject: 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 --- engines/draci/game.cpp | 17 ++++++----------- 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; }; -- cgit v1.2.3