aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Kołodziejski2003-04-13 16:42:33 +0000
committerPaweł Kołodziejski2003-04-13 16:42:33 +0000
commite0d170facae4bbabb6f106105899bccb6955e656 (patch)
treed0a032eb0dddb7d40f4e934891e38252ff88792c
parentaff192d554543b50cac9bf40d6e11a72c314821a (diff)
downloadscummvm-rg350-e0d170facae4bbabb6f106105899bccb6955e656.tar.gz
scummvm-rg350-e0d170facae4bbabb6f106105899bccb6955e656.tar.bz2
scummvm-rg350-e0d170facae4bbabb6f106105899bccb6955e656.zip
handle old_bundle offsets getVerbEntrypoint(), o5_setObjectName(), getObjOrActorName() funcs
svn-id: r7003
-rw-r--r--scumm/object.cpp5
-rw-r--r--scumm/script.cpp4
-rw-r--r--scumm/script_v5.cpp5
3 files changed, 11 insertions, 3 deletions
diff --git a/scumm/object.cpp b/scumm/object.cpp
index 0adb79478f..00a4efd414 100644
--- a/scumm/object.cpp
+++ b/scumm/object.cpp
@@ -831,7 +831,10 @@ byte *Scumm::getObjOrActorName(int obj) {
objptr = getOBCDFromObject(obj);
if (objptr)
- offset = READ_LE_UINT16(objptr + 18);
+ if (_features & GF_OLD_BUNDLE)
+ offset = READ_LE_UINT16(objptr + 20);
+ else
+ offset = READ_LE_UINT16(objptr + 18);
return (objptr + offset);
}
diff --git a/scumm/script.cpp b/scumm/script.cpp
index 79673cec28..53fa2988d8 100644
--- a/scumm/script.cpp
+++ b/scumm/script.cpp
@@ -874,7 +874,9 @@ int Scumm::getVerbEntrypoint(int obj, int entry) {
objptr = getOBCDFromObject(obj);
assert(objptr);
- if (_features & GF_SMALL_HEADER)
+ if (_features & GF_OLD_BUNDLE)
+ verbptr = objptr + 21;
+ else if (_features & GF_SMALL_HEADER)
verbptr = objptr + 19;
else
verbptr = findResource(MKID('VERB'), objptr);
diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp
index 4213fcb332..0b4a306477 100644
--- a/scumm/script_v5.cpp
+++ b/scumm/script_v5.cpp
@@ -1899,7 +1899,10 @@ void Scumm_v5::o5_setObjectName() {
byte offset = 0;
objptr = getOBCDFromObject(obj);
- offset = READ_LE_UINT16(objptr + 18);
+ if (_features & GF_OLD_BUNDLE)
+ offset = READ_LE_UINT16(objptr + 20);
+ else
+ offset = READ_LE_UINT16(objptr + 18);
size = READ_LE_UINT16(objptr) - offset;
} else {
size = getResourceDataSize(name);