diff options
author | Travis Howell | 2004-07-24 07:14:26 +0000 |
---|---|---|
committer | Travis Howell | 2004-07-24 07:14:26 +0000 |
commit | 2cbc4039e8d33fa8e9f4e9152b479af4567cbe64 (patch) | |
tree | 8cdab68529489f900382b39b13ca6b16eae3e3fc | |
parent | 086c8da888b4a016151f23ea26b775104ad5d5dc (diff) | |
download | scummvm-rg350-2cbc4039e8d33fa8e9f4e9152b479af4567cbe64.tar.gz scummvm-rg350-2cbc4039e8d33fa8e9f4e9152b479af4567cbe64.tar.bz2 scummvm-rg350-2cbc4039e8d33fa8e9f4e9152b479af4567cbe64.zip |
A few HE games are supported now.
svn-id: r14313
-rw-r--r-- | scumm/script.cpp | 16 | ||||
-rw-r--r-- | scumm/script_v5.cpp | 12 |
2 files changed, 13 insertions, 15 deletions
diff --git a/scumm/script.cpp b/scumm/script.cpp index 56ad1ae5b1..c5c2452ddd 100644 --- a/scumm/script.cpp +++ b/scumm/script.cpp @@ -460,7 +460,8 @@ int ScummEngine::readVar(uint var) { else copyprotbypassed = true; - debugC(DEBUG_VARS, "readvar(%d)", var); + if (var == VAR_TIMER) + debug(1, "readvar(%d)", var); if (var & 0x2000 && !(_features & GF_NEW_OPCODES)) { a = fetchScriptWord(); @@ -503,16 +504,10 @@ int ScummEngine::readVar(uint var) { if (!_copyProtection) { // INDY3, EGA Loom and, apparently, Zak256 check this // during the game... - if (_gameId == GID_INDY3 && (_features & GF_OLD_BUNDLE) && var == 94 && bit == 4) { + if (_gameId == GID_INDY3 && (_features & GF_OLD_BUNDLE) && var == 94 && bit == 4) return 0; - } else if (var == 221 && bit == 14 && _gameId == GID_LOOM && (_features & GF_MACINTOSH)) { // For Mac Loom + else if (_gameId == GID_ZAK256 && var == 151 && bit == 8) return 0; - // For all other Loom versions? PC and FM Towns at least in any event - } else if (var == 214 && bit == 15 && _gameId == GID_LOOM) { - return 0; - } else if (_gameId == GID_ZAK256 && var == 151 && bit == 8) { - return 0; - } } checkRange(_numVariables - 1, 0, var, "Variable %d out of range(rzb)"); @@ -545,7 +540,8 @@ int ScummEngine::readVar(uint var) { } void ScummEngine::writeVar(uint var, int value) { - debugC(DEBUG_VARS, "writeVar(%d, %d)", var, value); + if (var == VAR_TIMER) + debug(1, "writeVar(%d, %d)", var, value); if (!(var & 0xF000)) { checkRange(_numVariables - 1, 0, var, "Variable %d out of range(w)"); diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp index b542f3d1ec..15c7b0a75b 100644 --- a/scumm/script_v5.cpp +++ b/scumm/script_v5.cpp @@ -2200,11 +2200,13 @@ void ScummEngine_v5::o5_startScript() { getWordVararg(data); - // Method used by original games to skip copy protection scheme - //if (_gameId == GID_LOOM && _currentRoom == 69 && script == 201) - // script = 205; - //else if ((_gameId == GID_MONKEY_VGA || _gameId == GID_MONKEY_EGA) && script == 152) - // return; + if (!_copyProtection) { + // Method used by original games to skip copy protection scheme + if (_gameId == GID_LOOM && _currentRoom == 69 && script == 201) + script = 205; + else if ((_gameId == GID_MONKEY_VGA || _gameId == GID_MONKEY_EGA) && script == 152) + return; + } runScript(script, (op & 0x20) != 0, (op & 0x40) != 0, data); } |