aboutsummaryrefslogtreecommitdiff
path: root/scumm/scumm.cpp
diff options
context:
space:
mode:
authorTravis Howell2004-09-11 13:22:45 +0000
committerTravis Howell2004-09-11 13:22:45 +0000
commit42739375901467d0ab1769c27e27bbb4648dc536 (patch)
tree35521a18839539b7e3d829589339582fe0c461a5 /scumm/scumm.cpp
parentc8e65e1c8f11623782d7e8617ee47e923c85eae3 (diff)
downloadscummvm-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/scumm.cpp')
-rw-r--r--scumm/scumm.cpp17
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) {