[Scummvm-cvs-logs] CVS: scummvm/scumm scumm.cpp,1.203,1.204
Travis Howell
kirben at users.sourceforge.net
Thu Sep 16 02:41:11 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16003/scumm
Modified Files:
scumm.cpp
Log Message:
HE90+ games use two local resource types
Index: scumm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.cpp,v
retrieving revision 1.203
retrieving revision 1.204
diff -u -d -r1.203 -r1.204
--- scumm.cpp 16 Sep 2004 09:20:49 -0000 1.203
+++ scumm.cpp 16 Sep 2004 09:40:08 -0000 1.204
@@ -2727,7 +2727,7 @@
_localScriptList[id - _numGlobalScripts] = ptr + 1 - roomptr;
}
- } else if (_heversion >= 99) {
+ } else if (_heversion >= 90) {
ResourceIterator localScriptIterator(searchptr, false);
while ((ptr = localScriptIterator.findNext(MKID('LSC2'))) != NULL) {
int id = 0;
@@ -2735,6 +2735,7 @@
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;
@@ -2744,6 +2745,22 @@
dumpResource(buf, id, ptr - _resourceHeaderSize);
}
}
+
+ while ((ptr = localScriptIterator.findNext(MKID('LSCR'))) != NULL) {
+ int id = 0;
+
+ ptr += _resourceHeaderSize; /* skip tag & size */
+
+ id = ptr[0];
+ _localScriptList[id - _numGlobalScripts] = ptr + 1 - 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) {
More information about the Scummvm-git-logs
mailing list