[Scummvm-cvs-logs] CVS: scummvm/scumm script.cpp,1.32,1.33
Max Horn
fingolfin at users.sourceforge.net
Fri Dec 27 07:12:05 CET 2002
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv9358
Modified Files:
script.cpp
Log Message:
fixed verb entry code for V8
Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script.cpp,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- script.cpp 27 Dec 2002 14:04:25 -0000 1.32
+++ script.cpp 27 Dec 2002 15:11:43 -0000 1.33
@@ -883,18 +883,32 @@
if (!(_features & GF_SMALL_HEADER))
verbptr += _resourceHeaderSize;
- do {
- if (!*verbptr)
- return 0;
- if (*verbptr == entry || *verbptr == 0xFF)
- break;
- verbptr += 3;
- } while (1);
-
- if (_features & GF_SMALL_HEADER)
- return READ_LE_UINT16(verbptr + 1);
- else
- return verboffs + READ_LE_UINT16(verbptr + 1);
+ if (_features & GF_AFTER_V8) {
+ uint32 *ptr = (uint32 *)verbptr;
+ uint32 verb;
+ do {
+ verb = READ_LE_UINT32(ptr);
+ if (!verb)
+ return 0;
+ if (verb == (uint32)entry || verb == 0xFFFFFFFF)
+ break;
+ ptr += 2;
+ } while (1);
+ return verboffs + 8 + READ_LE_UINT32(ptr + 1);
+ } else {
+ do {
+ if (!*verbptr)
+ return 0;
+ if (*verbptr == entry || *verbptr == 0xFF)
+ break;
+ verbptr += 3;
+ } while (1);
+
+ if (_features & GF_SMALL_HEADER)
+ return READ_LE_UINT16(verbptr + 1);
+ else
+ return verboffs + READ_LE_UINT16(verbptr + 1);
+ }
}
void Scumm::endCutscene()
More information about the Scummvm-git-logs
mailing list