From 38f89eff0b51d3fea8b6cf7035dc68b75d01a383 Mon Sep 17 00:00:00 2001 From: James Brown Date: Tue, 25 Jun 2002 02:04:43 +0000 Subject: [PATCH] MadMoose's bugfix for 555890 - DOTT: Inventory items not changing name svn-id: r4427 --- object.cpp | 11 +++++++++++ script_v1.cpp | 8 ++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/object.cpp b/object.cpp index 63776d83a07..605c936f9a0 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 d94969022f5..8615654373c 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()