diff options
author | Max Horn | 2011-05-11 18:06:30 +0200 |
---|---|---|
committer | Max Horn | 2011-05-13 11:47:10 +0200 |
commit | 75b9deb1856bae8355403faa5f55857f3929adb6 (patch) | |
tree | e3a12b77289bd2f5cc3a252a9867974a2d1cb965 /engines/scumm/script.cpp | |
parent | 0af2f71c71e39df2d61dd7cc9faed7c5e6a50fab (diff) | |
download | scummvm-rg350-75b9deb1856bae8355403faa5f55857f3929adb6.tar.gz scummvm-rg350-75b9deb1856bae8355403faa5f55857f3929adb6.tar.bz2 scummvm-rg350-75b9deb1856bae8355403faa5f55857f3929adb6.zip |
SCUMM: Get rid of the MemBlkHeader hack
This uncovered at least one potentially serious bug in the inventory
code, which still needs to be investigated and fixed.
Diffstat (limited to 'engines/scumm/script.cpp')
-rw-r--r-- | engines/scumm/script.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/engines/scumm/script.cpp b/engines/scumm/script.cpp index 4630ec1a5c..7f279a3f0c 100644 --- a/engines/scumm/script.cpp +++ b/engines/scumm/script.cpp @@ -390,7 +390,7 @@ void ScummEngine::getScriptBaseAddress() { break; _scriptOrgPointer = getResourceAddress(rtInventory, idx); assert(idx < _numInventory); - _lastCodePtr = &_res->_types[rtInventory].address[idx]; + _lastCodePtr = &_res->_types[rtInventory]._address[idx]; break; case WIO_LOCAL: @@ -398,18 +398,18 @@ void ScummEngine::getScriptBaseAddress() { if (_game.version == 8) { _scriptOrgPointer = getResourceAddress(rtRoomScripts, _roomResource); assert(_roomResource < _res->_types[rtRoomScripts].num); - _lastCodePtr = &_res->_types[rtRoomScripts].address[_roomResource]; + _lastCodePtr = &_res->_types[rtRoomScripts]._address[_roomResource]; } else { _scriptOrgPointer = getResourceAddress(rtRoom, _roomResource); assert(_roomResource < _numRooms); - _lastCodePtr = &_res->_types[rtRoom].address[_roomResource]; + _lastCodePtr = &_res->_types[rtRoom]._address[_roomResource]; } break; case WIO_GLOBAL: /* global script */ _scriptOrgPointer = getResourceAddress(rtScript, ss->number); assert(ss->number < _numScripts); - _lastCodePtr = &_res->_types[rtScript].address[ss->number]; + _lastCodePtr = &_res->_types[rtScript]._address[ss->number]; break; case WIO_FLOBJECT: /* flobject script */ @@ -418,7 +418,7 @@ void ScummEngine::getScriptBaseAddress() { idx = _objs[idx].fl_object_index; _scriptOrgPointer = getResourceAddress(rtFlObject, idx); assert(idx < _numFlObject); - _lastCodePtr = &_res->_types[rtFlObject].address[idx]; + _lastCodePtr = &_res->_types[rtFlObject]._address[idx]; break; default: error("Bad type while getting base address"); @@ -445,7 +445,7 @@ void ScummEngine::resetScriptPointer() { * collected by ResourceManager::expireResources. */ void ScummEngine::refreshScriptPointer() { - if (*_lastCodePtr + sizeof(MemBlkHeader) != _scriptOrgPointer) { + if (*_lastCodePtr != _scriptOrgPointer) { long oldoffs = _scriptPointer - _scriptOrgPointer; getScriptBaseAddress(); _scriptPointer = _scriptOrgPointer + oldoffs; |