diff options
author | James Brown | 2002-06-25 02:04:43 +0000 |
---|---|---|
committer | James Brown | 2002-06-25 02:04:43 +0000 |
commit | 38f89eff0b51d3fea8b6cf7035dc68b75d01a383 (patch) | |
tree | 7f7d884ce8f1223c70e62a15628882b9ee567891 | |
parent | 88e176f1552588e4a84f5114ee7dcd4e0d6c1f96 (diff) | |
download | scummvm-rg350-38f89eff0b51d3fea8b6cf7035dc68b75d01a383.tar.gz scummvm-rg350-38f89eff0b51d3fea8b6cf7035dc68b75d01a383.tar.bz2 scummvm-rg350-38f89eff0b51d3fea8b6cf7035dc68b75d01a383.zip |
MadMoose's bugfix for 555890 - DOTT: Inventory items not changing name
svn-id: r4427
-rw-r--r-- | object.cpp | 11 | ||||
-rw-r--r-- | script_v1.cpp | 8 |
2 files changed, 17 insertions, 2 deletions
diff --git a/object.cpp b/object.cpp index 63776d83a0..605c936f9a 100644 --- a/object.cpp +++ b/object.cpp @@ -719,6 +719,7 @@ void Scumm::clearDrawObjectQueue() byte *Scumm::getObjOrActorName(int obj) { byte *objptr; + int i; if (obj < NUM_ACTORS) return derefActorSafe(obj, "getObjOrActorName")->getActorName(); @@ -732,6 +733,16 @@ byte *Scumm::getObjOrActorName(int obj) return (objptr + offset); } + if (_features & GF_AFTER_V6) { + for (i = 1; i < 50; i++) { + if (_newNames[i] == obj) { + debug(5, "Found new name for object %d at _newNames[i]", obj, i); + return getResourceAddress(rtObjectName, i); + break; + } + } + } + objptr = getOBCDFromObject(obj); if (objptr == NULL) return (byte *)" "; diff --git a/script_v1.cpp b/script_v1.cpp index d94969022f..8615654373 100644 --- a/script_v1.cpp +++ b/script_v1.cpp @@ -1293,9 +1293,13 @@ void Scumm::o5_getActorScale() void Scumm::o5_getActorWalkBox() { + Actor *a; getResultPos(); - setResult(derefActorSafe(getVarOrDirectByte(0x80), "o5_getActorWalkbox")-> - walkbox); + a = derefActorSafe(getVarOrDirectByte(0x80), "o5_getActorWalkbox"); + if (a) // FIXME - bug 572977 workaround + setResult(a->walkbox); + else + setResult(0); } void Scumm::o5_getActorWidth() |