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 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'engines/draci/game.cpp') 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); } -- cgit v1.2.3