aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2009-04-19 01:00:49 +0000
committerMax Horn2009-04-19 01:00:49 +0000
commit25d0e7d4bc5c0d4bedb49381fc3eec9edbd9c354 (patch)
treef553d5aace19e7d812d4feb583fa3e738ff872be
parent31eeb37107031d36073f6fed460f2ab5ea159da1 (diff)
downloadscummvm-rg350-25d0e7d4bc5c0d4bedb49381fc3eec9edbd9c354.tar.gz
scummvm-rg350-25d0e7d4bc5c0d4bedb49381fc3eec9edbd9c354.tar.bz2
scummvm-rg350-25d0e7d4bc5c0d4bedb49381fc3eec9edbd9c354.zip
SCUMM: In v5, only opcodes 0x05 and 0x85 are mapped to o5_drawObject; in v3 & v4, several other opcodes map to it. Capture this properly in the opcode tables
svn-id: r40011
-rw-r--r--engines/scumm/script_v4.cpp7
-rw-r--r--engines/scumm/script_v5.cpp9
2 files changed, 9 insertions, 7 deletions
diff --git a/engines/scumm/script_v4.cpp b/engines/scumm/script_v4.cpp
index 77f293470b..630c09642e 100644
--- a/engines/scumm/script_v4.cpp
+++ b/engines/scumm/script_v4.cpp
@@ -33,6 +33,13 @@ namespace Scumm {
void ScummEngine_v4::setupOpcodes() {
ScummEngine_v5::setupOpcodes();
+ OPCODE(0x25, o5_drawObject);
+ OPCODE(0x45, o5_drawObject);
+ OPCODE(0x65, o5_drawObject);
+ OPCODE(0xa5, o5_drawObject);
+ OPCODE(0xc5, o5_drawObject);
+ OPCODE(0xe5, o5_drawObject);
+
OPCODE(0x50, o4_pickupObject);
OPCODE(0xd0, o4_pickupObject);
}
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index cbf2650976..12ee82438c 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -126,7 +126,7 @@ void ScummEngine_v5::setupOpcodes() {
OPCODE(0x43, o5_getActorX);
/* 44 */
OPCODE(0x44, o5_isLess);
- OPCODE(0x45, o5_drawObject);
+// OPCODE(0x45, o5_drawObject);
OPCODE(0x46, o5_increment);
OPCODE(0x47, o5_setState);
/* 48 */
@@ -286,7 +286,7 @@ void ScummEngine_v5::setupOpcodes() {
OPCODE(0xc3, o5_getActorX);
/* C4 */
OPCODE(0xc4, o5_isLess);
- OPCODE(0xc5, o5_drawObject);
+// OPCODE(0xc5, o5_drawObject);
OPCODE(0xc6, o5_decrement);
OPCODE(0xc7, o5_setState);
/* C8 */
@@ -1736,11 +1736,6 @@ void ScummEngine_v5::o5_panCameraTo() {
void ScummEngine_v5::o5_pickupObject() {
int obj, room;
- if (_game.version == 3 || _game.version == 4) {
- o5_drawObject();
- return;
- }
-
obj = getVarOrDirectWord(PARAM_1);
room = getVarOrDirectByte(PARAM_2);
if (room == 0)