[Scummvm-cvs-logs] CVS: scummvm/scumm scummvm.cpp,2.89,2.90
Max Horn
fingolfin at users.sourceforge.net
Sat Apr 12 11:00:04 CEST 2003
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv14180
Modified Files:
scummvm.cpp
Log Message:
fixed (?) local script offests for OLD_BUNDLE games
Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 2.89
retrieving revision 2.90
diff -u -d -r2.89 -r2.90
--- scummvm.cpp 12 Apr 2003 12:03:55 -0000 2.89
+++ scummvm.cpp 12 Apr 2003 17:59:24 -0000 2.90
@@ -996,6 +996,9 @@
}
}
+ //
+ // Load sccale data
+ //
if (_features & GF_OLD_BUNDLE)
ptr = 0; // TODO ?
else
@@ -1025,7 +1028,7 @@
}
//
- // Setup local script
+ // Setup local scripts
//
// Determine the room script base address
@@ -1038,16 +1041,16 @@
int num_objects = *(roomResPtr + 20);
int num_sounds = *(roomResPtr + 23);
int num_scripts = *(roomResPtr + 24);
- int offset = 29 + num_objects * 4 + num_sounds + num_scripts;
+ ptr = roomptr + 29 + num_objects * 4 + num_sounds + num_scripts;
if ((_gameId != GID_MANIAC) && (_gameId != GID_ZAK)) {
- for (;;) {
- int id = *(roomResPtr + offset);
- if (id == 0)
- break;
+ while (*ptr) {
+ int id = *ptr;
- _localScriptList[id - _numGlobalScripts] = offset + 1;
- offset += 3;
+ _localScriptList[id - _numGlobalScripts] = READ_LE_UINT16(ptr + 1);
+ ptr += 3;
+
+ // TODO: add script dumping, but how do we determine the script length?
}
}
} else if (_features & GF_SMALL_HEADER) {
More information about the Scummvm-git-logs
mailing list