diff options
-rw-r--r-- | engines/scumm/resource.cpp | 2 | ||||
-rw-r--r-- | engines/scumm/script_v2.cpp | 10 | ||||
-rw-r--r-- | engines/scumm/script_v5.cpp | 2 | ||||
-rw-r--r-- | engines/scumm/scumm.cpp | 12 | ||||
-rw-r--r-- | engines/scumm/scumm.h | 1 |
5 files changed, 13 insertions, 14 deletions
diff --git a/engines/scumm/resource.cpp b/engines/scumm/resource.cpp index 326b958128..b5fb6fb8e7 100644 --- a/engines/scumm/resource.cpp +++ b/engines/scumm/resource.cpp @@ -172,7 +172,7 @@ void ScummEngine::openRoom(const int room) { result = openResourceFile(buf2, encByte); // We have .man files so set demo mode if (_game.id == GID_MANIAC) - _demoMode = true; + _game.features |= GF_DEMO; } if (result) { diff --git a/engines/scumm/script_v2.cpp b/engines/scumm/script_v2.cpp index 00e4bfba57..f1683fce26 100644 --- a/engines/scumm/script_v2.cpp +++ b/engines/scumm/script_v2.cpp @@ -425,7 +425,7 @@ void ScummEngine_v2::decodeParseString() { if (_game.id == GID_MANIAC && _actorToPrintStrFor == 0xFF) { if (_game.platform == Common::kPlatformC64) { _string[textSlot].color = 14; - } else if (_demoMode) { + } else if (_game.features & GF_DEMO) { _string[textSlot].color = (_game.version == 2) ? 15 : 1; } } @@ -711,7 +711,7 @@ void ScummEngine_v2::o2_actorOps() { a->setActorCostume(arg); break; case 5: // SO_TALK_COLOR - if (_game.id == GID_MANIAC && _game.version == 2 && _demoMode && arg == 1) + if (_game.id == GID_MANIAC && _game.version == 2 && (_game.features & GF_DEMO) && arg == 1) a->_talkColor = 15; else a->_talkColor = arg; @@ -844,11 +844,11 @@ void ScummEngine_v2::o2_verbOps() { vs->hicolor = 1; vs->dimcolor = 1; } else if (_game.version == 1) { - vs->color = (_game.id == GID_MANIAC && _demoMode) ? 16 : 5; + vs->color = (_game.id == GID_MANIAC && (_game.features & GF_DEMO)) ? 16 : 5; vs->hicolor = 7; vs->dimcolor = 11; } else { - vs->color = (_game.id == GID_MANIAC && _demoMode) ? 13 : 2; + vs->color = (_game.id == GID_MANIAC && (_game.features & GF_DEMO)) ? 13 : 2; vs->hicolor = 14; vs->dimcolor = 8; } @@ -1467,7 +1467,7 @@ void ScummEngine_v2::o2_cutscene() { // FIXME allows quotes script (173) to start during introudction of // demo mode of V1 Maniac Mansion. setUserState was halting script // 173 before it started. - if (!(_game.id == GID_MANIAC && _demoMode)) + if (!(_game.id == GID_MANIAC && (_game.features & GF_DEMO))) // Hide inventory, freeze scripts, hide cursor setUserState(15); diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp index c89830e625..2163be1958 100644 --- a/engines/scumm/script_v5.cpp +++ b/engines/scumm/script_v5.cpp @@ -1340,7 +1340,7 @@ void ScummEngine_v5::o5_isEqual() { // HACK: To allow demo script of Maniac Mansion V2 // The camera x position is only 100, instead of 180, after game title name scrolls. - if (_game.id == GID_MANIAC && _game.version == 2 && _demoMode && isScriptRunning(173) && b == 180) + if (_game.id == GID_MANIAC && _game.version == 2 && (_game.features & GF_DEMO) && isScriptRunning(173) && b == 180) b = 100; if (b == a) diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp index 931aa00d58..957298b3a6 100644 --- a/engines/scumm/scumm.cpp +++ b/engines/scumm/scumm.cpp @@ -365,7 +365,6 @@ ScummEngine::ScummEngine(OSystem *syst, const GameSettings &gs, uint8 md5sum[16] _charsetBufPos = 0; memset(_charsetBuffer, 0, sizeof(_charsetBuffer)); _copyProtection = false; - _demoMode = false; _confirmExit = false; _voiceMode = 0; _talkDelay = 0; @@ -544,7 +543,8 @@ ScummEngine::ScummEngine(OSystem *syst, const GameSettings &gs, uint8 md5sum[16] _baseName = ConfMan.hasKey("basename") ? ConfMan.get("basename") : gs.gameid; _copyProtection = ConfMan.getBool("copy_protection"); - _demoMode = ConfMan.getBool("demo_mode"); + if (ConfMan.getBool("demo_mode")) + _game.features |= GF_DEMO; if (ConfMan.hasKey("nosubtitles")) { printf("Configuration key 'nosubtitles' is deprecated. Use 'subtitles' instead\n"); if (!ConfMan.hasKey("subtitles")) @@ -1087,13 +1087,13 @@ void ScummEngine::scummInit() { _actors[i].initActor(1); // this is from IDB - if ((_game.version == 1) || (_game.id == GID_MANIAC && _demoMode)) + if ((_game.version == 1) || (_game.id == GID_MANIAC && (_game.features & GF_DEMO))) _actors[i].setActorCostume(i); } if (_game.id == GID_MANIAC && _game.version == 1) { setupV1ActorTalkColor(); - } else if (_game.id == GID_MANIAC && _game.version == 2 && _demoMode) { + } else if (_game.id == GID_MANIAC && _game.version == 2 && (_game.features & GF_DEMO)) { // HACK Some palette changes needed for demo script // in Maniac Mansion (Enhanced) _actors[3].setPalette(3, 1); @@ -1458,7 +1458,7 @@ int ScummEngine::go() { ((ScummEngine_v90he *)this)->_logicHE->beforeBootScript(); } #endif - if (_game.id == GID_MANIAC && _demoMode) + if (_game.id == GID_MANIAC && (_game.features & GF_DEMO)) runScript(9, 0, 0, args); else runScript(1, 0, 0, args); @@ -1899,7 +1899,7 @@ void ScummEngine::restart() { int args[16]; memset(args, 0, sizeof(args)); args[0] = _bootParam; - if (_game.id == GID_MANIAC && _demoMode) + if (_game.id == GID_MANIAC && (_game.features & GF_DEMO)) runScript(9, 0, 0, args); else runScript(1, 0, 0, args); diff --git a/engines/scumm/scumm.h b/engines/scumm/scumm.h index 489e897afb..ad6c84c667 100644 --- a/engines/scumm/scumm.h +++ b/engines/scumm/scumm.h @@ -1154,7 +1154,6 @@ protected: bool _enable_gs; MidiDriverFlags _musicType; bool _copyProtection; - bool _demoMode; bool _confirmExit; public: |