aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--object.cpp11
-rw-r--r--script_v1.cpp8
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()