aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/script_v0.cpp
diff options
context:
space:
mode:
authorTobias Gunkel2012-01-18 20:29:29 +0100
committerTobias Gunkel2012-02-11 08:28:57 +0100
commitf2c3675ed1306f82b5cb5d44d541739ff727dfde (patch)
tree4c1b088cac7f8dec94fe8f1f29384f4355482dcf /engines/scumm/script_v0.cpp
parent6d4b710c541a2e7706cb80c8737e6f8caa487277 (diff)
downloadscummvm-rg350-f2c3675ed1306f82b5cb5d44d541739ff727dfde.tar.gz
scummvm-rg350-f2c3675ed1306f82b5cb5d44d541739ff727dfde.tar.bz2
scummvm-rg350-f2c3675ed1306f82b5cb5d44d541739ff727dfde.zip
SCUMM: v0 opcode review
- o_setObjectName has a default value - o_putActorAtObject can either operate on a fg or bg object Note: neither the default value nor the bg object opcode (4E) seem to be ever used by any script. So this commit is rather for completeness than for bug-fixing.
Diffstat (limited to 'engines/scumm/script_v0.cpp')
-rw-r--r--engines/scumm/script_v0.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/engines/scumm/script_v0.cpp b/engines/scumm/script_v0.cpp
index 3b81a913b3..caaf56878f 100644
--- a/engines/scumm/script_v0.cpp
+++ b/engines/scumm/script_v0.cpp
@@ -701,7 +701,12 @@ void ScummEngine_v0::o_putActorAtObject() {
a = derefActor(getVarOrDirectByte(PARAM_1), "o_putActorAtObject");
- obj = fetchScriptByte();
+ int objId = fetchScriptByte();
+ if (_opcode & 0x40)
+ obj = OBJECT_V0(objId, kObjectV0TypeBG);
+ else
+ obj = OBJECT_V0(objId, kObjectV0TypeFG);
+
if (whereIsObject(obj) != WIO_NOT_FOUND) {
getObjectXYPos(obj, x, y);
AdjustBoxResult r = a->adjustXYToBeInBox(x, y);
@@ -735,6 +740,8 @@ void ScummEngine_v0::o_pickupObject() {
void ScummEngine_v0::o_setObjectName() {
int obj = fetchScriptByte();
+ if (!obj)
+ obj = _cmdObject;
setObjectName(obj);
}