aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/object.cpp3
-rw-r--r--scumm/script_v6he.cpp11
-rw-r--r--scumm/scumm.h1
3 files changed, 15 insertions, 0 deletions
diff --git a/scumm/object.cpp b/scumm/object.cpp
index 18864ff899..d6c60aac0d 100644
--- a/scumm/object.cpp
+++ b/scumm/object.cpp
@@ -411,6 +411,9 @@ static const uint32 IMxx_tags[] = {
};
void ScummEngine::drawObject(int obj, int arg) {
+ if (_skipDrawObject)
+ return;
+
ObjectData &od = _objs[obj];
int xpos, ypos, height, width;
const byte *ptr;
diff --git a/scumm/script_v6he.cpp b/scumm/script_v6he.cpp
index 0e69ad8744..718d47b1a9 100644
--- a/scumm/script_v6he.cpp
+++ b/scumm/script_v6he.cpp
@@ -529,6 +529,11 @@ void ScummEngine_v6he::o6_roomOps() {
_saveLoadSlot = 1;
_saveTemporaryState = true;
break;
+ case 234:
+ b = pop();
+ a = pop();
+ warning("o6_roomOps: case %d (%d, %d)", op, b, a);
+ break;
default:
error("o6_roomOps: default case %d", op);
}
@@ -761,6 +766,12 @@ void ScummEngine_v6he::o6_kernelSetFunctions() {
case 5:
//Used before mini games in 3DO versions, seems safe to ignore.
break;
+ case 20:
+ _skipDrawObject = 1;
+ break;
+ case 21:
+ _skipDrawObject = 0;
+ break;
default:
error("o6_kernelSetFunctions: default case %d (param count %d)", args[0], num);
break;
diff --git a/scumm/scumm.h b/scumm/scumm.h
index 9573d41c37..aba9be3aad 100644
--- a/scumm/scumm.h
+++ b/scumm/scumm.h
@@ -1032,6 +1032,7 @@ public:
byte _roomPalette[256];
byte *_shadowPalette;
int _heSndSoundFreq, _heSndOffset, _heSndTimer, _heSndSoundId, _heSndLoop;
+ bool _skipDrawObject;
protected:
int _shadowPaletteSize;