diff options
author | Tobias Gunkel | 2012-01-18 20:29:29 +0100 |
---|---|---|
committer | Tobias Gunkel | 2012-02-11 08:28:57 +0100 |
commit | f2c3675ed1306f82b5cb5d44d541739ff727dfde (patch) | |
tree | 4c1b088cac7f8dec94fe8f1f29384f4355482dcf /engines/scumm/script_v0.cpp | |
parent | 6d4b710c541a2e7706cb80c8737e6f8caa487277 (diff) | |
download | scummvm-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.cpp | 9 |
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); } |