diff options
| author | Max Horn | 2003-07-04 12:34:09 +0000 |
|---|---|---|
| committer | Max Horn | 2003-07-04 12:34:09 +0000 |
| commit | fb16fb3e24160ba2472661167eca671bd4f5848b (patch) | |
| tree | 53dc89958e153f33c7049002a13e61f89cd406d3 /scumm/script.cpp | |
| parent | 1d93949167c43861c6ed3ec605488658a4b873ce (diff) | |
| download | scummvm-rg350-fb16fb3e24160ba2472661167eca671bd4f5848b.tar.gz scummvm-rg350-fb16fb3e24160ba2472661167eca671bd4f5848b.tar.bz2 scummvm-rg350-fb16fb3e24160ba2472661167eca671bd4f5848b.zip | |
added some very limited support for Mac Loom (text is now properly centered around x:160 instead of x:0); added (commented out) copyprot bypass (but since I am not sure if there was ever a Mac Loom w/o codes, am not sure if this ever should be enabled); added comment regarding the Mac Loom sound format
svn-id: r8737
Diffstat (limited to 'scumm/script.cpp')
| -rw-r--r-- | scumm/script.cpp | 28 |
1 files changed, 2 insertions, 26 deletions
diff --git a/scumm/script.cpp b/scumm/script.cpp index a61f07fcba..b27b3f1b94 100644 --- a/scumm/script.cpp +++ b/scumm/script.cpp @@ -129,31 +129,6 @@ void Scumm::initializeLocals(int slot, int *vars) { for (i = 0; i < 16; i++) vm.localvar[slot][i] = vars[i]; } - -#if defined(BYPASS_COPY_PROT) && 0 - // Loom will set bit 15 of variable 214 to 1 if the user enters the - // wrong code. But this bit is also used later in the game to determine - // if the user has already learned the fourth note. Therefore any - // interfering directly with this variable may be risky. - // - // Let's try an alternative solution instead. The correct code is - // stored in variables 82-85. Each time the user selects a symbol, - // its ID (0-11) is passed to room-69-203 as local variable 0. Variable - // 98 is 1, 2, 3 or 4 depending on how many symbols the player has - // selected yet. - // - // If the sum of variables 82-85 is 0, the "fail" bit will be set, - // regardless of the player's choice. I don't know why, but it does - // mean that it's safer to change local variable 0 than to change - // variables 82-85. - // - // Update: It has since occured to me that bit 15 could be set to - // indicate that the game is running in "demo" mode. In that case, this - // bypassing mechanism is needlessly complicated after all, and we - // could just make every read of that bit return zero. - if (_gameId == GID_LOOM && _currentRoom == 69 && vm.slot[slot].number == 203) - vm.localvar[slot][0] = _scummVars[81 + _scummVars[98]]; -#endif } int Scumm::getVerbEntrypoint(int obj, int entry) { @@ -521,7 +496,8 @@ int Scumm::readVar(uint var) { // during the game... if (_gameId == GID_INDY3 && var == 94 && bit == 4) { return 0; - } else if (_gameId == GID_LOOM && var == 214 && bit == 15) { +// } else if (_gameId == GID_LOOM && var == 221 && bit == 14) { // For Mac Loom + } else if (_gameId == GID_LOOM && var == 214 && bit == 15) { // For PC Loom return 0; } else if (_gameId == GID_ZAK256 && var == 151 && bit == 8) { return 0; |
