aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2004-07-22 04:13:46 +0000
committerTravis Howell2004-07-22 04:13:46 +0000
commitf09313d6a9ed8ddac1c6fc4d4f207837a925bf86 (patch)
tree6cc75720fbaad332ff4eea218c369836ded5a5a1
parent9f91359c2ebd574ff1698ec944f6e84603e49e48 (diff)
downloadscummvm-rg350-f09313d6a9ed8ddac1c6fc4d4f207837a925bf86.tar.gz
scummvm-rg350-f09313d6a9ed8ddac1c6fc4d4f207837a925bf86.tar.bz2
scummvm-rg350-f09313d6a9ed8ddac1c6fc4d4f207837a925bf86.zip
Correction to VAR tables.
svn-id: r14296
-rw-r--r--scumm/scumm.cpp42
-rw-r--r--scumm/scumm.h2
-rw-r--r--scumm/vars.cpp48
3 files changed, 41 insertions, 51 deletions
diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp
index 585d59bb22..45a3001d8a 100644
--- a/scumm/scumm.cpp
+++ b/scumm/scumm.cpp
@@ -679,7 +679,7 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS
VAR_ROOM_FLAG = 0xFF;
VAR_GAME_LOADED = 0xFF;
VAR_NEW_ROOM = 0xFF;
- VAR_VERSION = 0xFF;
+ VAR_VERSION_KEY = 0xFF;
VAR_V5_TALK_STRING_Y = 0xFF;
@@ -1063,16 +1063,9 @@ void ScummEngine::launch() {
scummInit();
- if (_version > 2) {
- if (_version < 7 && _heversion <= 60)
- VAR(VAR_VERSION) = 21;
- else if (_heversion >= 70)
- VAR(VAR_VERSION) = 22;
-
- if (_version > 3) {
+ if (VAR_DEBUGMODE != 0xFF) {
// This is NOT for the Mac version of Indy3/Loom
VAR(VAR_DEBUGMODE) = _debugMode;
- }
}
if (_gameId == GID_MONKEY || _gameId == GID_MONKEY_SEGA)
@@ -1304,7 +1297,6 @@ void ScummEngine::initScummVars() {
// TODO
} else {
VAR(VAR_CURRENTDRIVE) = 0;
- VAR(VAR_FIXEDDISK) = true;
switch (_midiDriver) {
case MD_NULL: VAR(VAR_SOUNDCARD) = 0; break;
case MD_ADLIB: VAR(VAR_SOUNDCARD) = 3; break;
@@ -1336,17 +1328,21 @@ void ScummEngine::initScummVars() {
VAR(VAR_SOUNDCARD) = 3;
}
VAR(VAR_VIDEOMODE) = 0x13;
- VAR(VAR_HEAPSPACE) = 1400;
- VAR(VAR_MOUSEPRESENT) = true; // FIXME - used to be 0, but that seems odd?!?
- if (_features & GF_HUMONGOUS) {
- VAR(VAR_SOUNDPARAM) = 1; // soundblaster for music
- VAR(VAR_SOUNDPARAM2) = 1; // soundblaster for sfx
- } else {
- VAR(VAR_SOUNDPARAM) = 0;
- VAR(VAR_SOUNDPARAM2) = 0;
+ if (_version >= 4) {
+ VAR(VAR_HEAPSPACE) = 1400;
+ VAR(VAR_FIXEDDISK) = true;
+ if (_features & GF_HUMONGOUS) {
+ VAR(VAR_SOUNDPARAM) = 1; // soundblaster for music
+ VAR(VAR_SOUNDPARAM2) = 1; // soundblaster for sfx
+ } else {
+ VAR(VAR_SOUNDPARAM) = 0;
+ VAR(VAR_SOUNDPARAM2) = 0;
+ }
+ VAR(VAR_SOUNDPARAM3) = 0;
}
- VAR(VAR_SOUNDPARAM3) = 0;
- if (_version >= 6 && VAR_V6_EMSSPACE != 0xFF)
+ if (_version >= 5)
+ VAR(VAR_MOUSEPRESENT) = true;
+ if (_version == 6)
VAR(VAR_V6_EMSSPACE) = 10000;
// Sets fade delay
@@ -1489,7 +1485,7 @@ int ScummEngine::scummLoop(int delta) {
VAR(VAR_VIRT_MOUSE_Y) = _virtualMouse.y;
VAR(VAR_MOUSE_X) = _mouse.x;
VAR(VAR_MOUSE_Y) = _mouse.y;
- if (_version > 3) {
+ if (VAR_DEBUGMODE != 0xFF) {
// This is NOT for the Mac version of Indy3/Loom
VAR(VAR_DEBUGMODE) = _debugMode;
}
@@ -2015,8 +2011,8 @@ void ScummEngine::processKbd(bool smushMode) {
}
// COMI version string is hard coded
- // FT version strings are partly hard coded too
- if ((_gameId == GID_DIG || _heversion >= 70) && _lastKeyHit == VAR(VAR_VERSION)) {
+ // Dig/FT version strings are partly hard coded too
+ if (_version == 7 && _lastKeyHit == VAR(VAR_VERSION_KEY)) {
versionDialog();
return;
}
diff --git a/scumm/scumm.h b/scumm/scumm.h
index ceaac6c4f8..e898f2be4d 100644
--- a/scumm/scumm.h
+++ b/scumm/scumm.h
@@ -1215,7 +1215,7 @@ public:
byte VAR_ROOM_FLAG;
byte VAR_GAME_LOADED;
byte VAR_NEW_ROOM;
- byte VAR_VERSION;
+ byte VAR_VERSION_KEY;
byte VAR_V5_TALK_STRING_Y;
diff --git a/scumm/vars.cpp b/scumm/vars.cpp
index 33f85a3c55..769af21b2e 100644
--- a/scumm/vars.cpp
+++ b/scumm/vars.cpp
@@ -54,14 +54,6 @@ void ScummEngine::setupScummVars() {
VAR_CUTSCENEEXIT_KEY = 24;
VAR_TALK_ACTOR = 25;
VAR_CAMERA_FAST_X = 26;
-
- // FIXME: Apparently, in the Mac version of Loom, scumm variable 27 was
- // used for another purpose. It is being set to values 0, 1, 2 or 3.
- // Maybe it's some kind of 'scroll mode'. See also:
- // http://www.scummbar.com/games/media/transcripts/maclucas.txt
- if (!(_gameId == GID_LOOM && _features & GF_MACINTOSH))
- VAR_SCROLL_SCRIPT = 27;
-
VAR_ENTRY_SCRIPT = 28;
VAR_ENTRY_SCRIPT2 = 29;
VAR_EXIT_SCRIPT = 30;
@@ -73,8 +65,6 @@ void ScummEngine::setupScummVars() {
VAR_CUTSCENE_END_SCRIPT = 36;
VAR_CHARINC = 37;
VAR_WALKTO_OBJ = 38;
- VAR_DEBUGMODE = 39;
- VAR_HEAPSPACE = 40;
VAR_RESTART_KEY = 42;
VAR_PAUSE_KEY = 43;
VAR_MOUSE_X = 44;
@@ -83,26 +73,30 @@ void ScummEngine::setupScummVars() {
VAR_TMR_4 = 47;
VAR_SOUNDCARD = 48;
VAR_VIDEOMODE = 49;
- VAR_MAINMENU_KEY = 50;
- VAR_FIXEDDISK = 51;
- VAR_CURSORSTATE = 52;
- VAR_USERPUT = 53;
- VAR_SOUNDRESULT = 56;
- VAR_TALKSTOP_KEY = 57;
- VAR_NOSUBTITLES = 60; // for loomcd
-
- VAR_SOUNDPARAM = 64;
- VAR_SOUNDPARAM2 = 65;
- VAR_SOUNDPARAM3 = 66;
- VAR_MOUSEPRESENT = 67;
- VAR_PERFORMANCE_1 = 68;
- if (!(_features & GF_SMALL_HEADER)) {
+ if (_version >= 4) {
+ VAR_SCROLL_SCRIPT = 27;
+ VAR_DEBUGMODE = 39;
+ VAR_HEAPSPACE = 40;
+ VAR_MAINMENU_KEY = 50;
+ VAR_FIXEDDISK = 51;
+ VAR_CURSORSTATE = 52;
+ VAR_USERPUT = 53;
+ VAR_SOUNDRESULT = 56;
+ VAR_TALKSTOP_KEY = 57;
+ VAR_NOSUBTITLES = 60;
+
+ VAR_SOUNDPARAM = 64;
+ VAR_SOUNDPARAM2 = 65;
+ VAR_SOUNDPARAM3 = 66;
+ }
+ if (_version >= 5) {
+ VAR_MOUSEPRESENT = 67;
+ VAR_PERFORMANCE_1 = 68;
VAR_PERFORMANCE_2 = 69; // Zak256 Note: Cashcard for Zak
VAR_ROOM_FLAG = 70; // Zak256 Note: Cashcard for Annie
VAR_GAME_LOADED = 71; // Zak256 Note: Cashcard for Melissa
VAR_NEW_ROOM = 72; // Zak256 Note: Cashcard for Leslie
}
- VAR_VERSION = 75;
}
void ScummEngine_v2::setupScummVars() {
@@ -311,7 +305,7 @@ void ScummEngine_v7::setupScummVars() {
VAR_RESTART_KEY = 63;
VAR_PAUSE_KEY = 64;
VAR_MAINMENU_KEY = 65;
- VAR_VERSION = 66;
+ VAR_VERSION_KEY = 66;
VAR_TALKSTOP_KEY = 67;
VAR_KEYPRESS = 118;
@@ -413,7 +407,7 @@ void ScummEngine_v8::setupScummVars() {
VAR_PAUSE_KEY = 64;
VAR_MAINMENU_KEY = 65;
- VAR_VERSION = 66;
+ VAR_VERSION_KEY = 66;
VAR_TALKSTOP_KEY = 67;
VAR_CUSTOMSCALETABLE = 111;