diff options
-rw-r--r-- | scumm/object.cpp | 3 | ||||
-rw-r--r-- | scumm/script_v6he.cpp | 11 | ||||
-rw-r--r-- | scumm/scumm.h | 1 |
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; |