From f2c3675ed1306f82b5cb5d44d541739ff727dfde Mon Sep 17 00:00:00 2001 From: Tobias Gunkel Date: Wed, 18 Jan 2012 20:29:29 +0100 Subject: 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. --- engines/scumm/script_v0.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'engines/scumm/script_v0.cpp') 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); } -- cgit v1.2.3