aboutsummaryrefslogtreecommitdiff
path: root/scumm/script.cpp
diff options
context:
space:
mode:
authorMax Horn2003-07-04 12:34:09 +0000
committerMax Horn2003-07-04 12:34:09 +0000
commitfb16fb3e24160ba2472661167eca671bd4f5848b (patch)
tree53dc89958e153f33c7049002a13e61f89cd406d3 /scumm/script.cpp
parent1d93949167c43861c6ed3ec605488658a4b873ce (diff)
downloadscummvm-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.cpp28
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;