diff options
author | Travis Howell | 2004-09-11 13:22:45 +0000 |
---|---|---|
committer | Travis Howell | 2004-09-11 13:22:45 +0000 |
commit | 42739375901467d0ab1769c27e27bbb4648dc536 (patch) | |
tree | 35521a18839539b7e3d829589339582fe0c461a5 /scumm | |
parent | c8e65e1c8f11623782d7e8617ee47e923c85eae3 (diff) | |
download | scummvm-rg350-42739375901467d0ab1769c27e27bbb4648dc536.tar.gz scummvm-rg350-42739375901467d0ab1769c27e27bbb4648dc536.tar.bz2 scummvm-rg350-42739375901467d0ab1769c27e27bbb4648dc536.zip |
Local script difference in HE 99 games.
svn-id: r15008
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/scumm.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index 6bd27d89a5..daa44b8b92 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -2709,6 +2709,23 @@ void ScummEngine::initRoomSubBlocks() { _localScriptList[id - _numGlobalScripts] = ptr + 1 - roomptr; } + } else if (_heversion >= 99) { + ResourceIterator localScriptIterator(searchptr, false); + while ((ptr = localScriptIterator.findNext(MKID('LSC2'))) != NULL) { + int id = 0; + + ptr += _resourceHeaderSize; /* skip tag & size */ + + id = READ_LE_UINT32(ptr); + //checkRange(NUM_LOCALSCRIPT + _numGlobalScripts, _numGlobalScripts, id, "Invalid local script %d"); + _localScriptList[id - _numGlobalScripts] = ptr + 4 - roomResPtr; + + if (_dumpScripts) { + char buf[32]; + sprintf(buf, "room-%d-", _roomResource); + dumpResource(buf, id, ptr - _resourceHeaderSize); + } + } } else { ResourceIterator localScriptIterator(searchptr, false); while ((ptr = localScriptIterator.findNext(MKID('LSCR'))) != NULL) { |