diff options
-rw-r--r-- | engines/scumm/detection_tables.h | 5 | ||||
-rw-r--r-- | engines/scumm/he/intern_he.h | 2 | ||||
-rw-r--r-- | engines/scumm/scumm.cpp | 2 | ||||
-rw-r--r-- | engines/scumm/vars.cpp | 14 |
4 files changed, 19 insertions, 4 deletions
diff --git a/engines/scumm/detection_tables.h b/engines/scumm/detection_tables.h index d312aa5725..71a11bc146 100644 --- a/engines/scumm/detection_tables.h +++ b/engines/scumm/detection_tables.h @@ -287,9 +287,11 @@ static const GameSettings gameVariantsTable[] = { // Changed o_getResourceSize to cover all resource types {"farm", "", 0, GID_HEGAME, 6, 73, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOMIDI}, - {"jungle", "", 0, GID_HEGAME, 6, 73, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOMIDI}, {"puttzoo", "", 0, GID_HEGAME, 6, 73, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOMIDI}, + // Added VAR_PLATFORM variable + {"jungle", "", 0, GID_HEGAME, 6, 74, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOMIDI}, + // Humongous Entertainment Scumm Version 8.0 ? Scummsrc.80 {"freddi2", "", 0, GID_HEGAME, 6, 80, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOMIDI}, {"pajama", "", 0, GID_HEGAME, 6, 80, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOMIDI}, @@ -382,6 +384,7 @@ static const GameSettings gameVariantsTable[] = { {"", "HE 71", 0, GID_HEGAME, 6, 71, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOMIDI}, {"", "HE 72", 0, GID_HEGAME, 6, 72, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOMIDI}, {"", "HE 73", 0, GID_HEGAME, 6, 73, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOMIDI}, + {"", "HE 74", 0, GID_HEGAME, 6, 74, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOMIDI}, {"", "HE 80", 0, GID_HEGAME, 6, 80, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOMIDI}, {"", "HE 85", 0, GID_HEGAME, 6, 85, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOMIDI}, {"", "HE 90", 0, GID_HEGAME, 6, 90, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOMIDI}, diff --git a/engines/scumm/he/intern_he.h b/engines/scumm/he/intern_he.h index 2f7f539ee3..8b145e0515 100644 --- a/engines/scumm/he/intern_he.h +++ b/engines/scumm/he/intern_he.h @@ -344,6 +344,7 @@ protected: byte VAR_POLYGONS_ONLY; byte VAR_MOUSE_STATE; // Used in checkExecVerbs(); + byte VAR_PLATFORM; }; class ScummEngine_v80he : public ScummEngine_v72he { @@ -385,7 +386,6 @@ protected: void o80_drawLine(); void o80_pickVarRandom(); - byte VAR_PLATFORM; byte VAR_PLATFORM_VERSION; byte VAR_CURRENT_CHARSET; byte VAR_KEY_STATE; diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp index a286f5a162..bc3715052b 100644 --- a/engines/scumm/scumm.cpp +++ b/engines/scumm/scumm.cpp @@ -798,6 +798,7 @@ ScummEngine_v72he::ScummEngine_v72he(OSystem *syst, const DetectorResult &dr) VAR_NUM_CHARSETS = 0xFF; VAR_POLYGONS_ONLY = 0xFF; VAR_MOUSE_STATE = 0xFF; + VAR_PLATFORM = 0xFF; } ScummEngine_v80he::ScummEngine_v80he(OSystem *syst, const DetectorResult &dr) @@ -808,7 +809,6 @@ ScummEngine_v80he::ScummEngine_v80he(OSystem *syst, const DetectorResult &dr) _sndTmrOffs = 0; _sndDataSize = 0; - VAR_PLATFORM = 0xFF; VAR_PLATFORM_VERSION = 0xFF; VAR_CURRENT_CHARSET = 0xFF; VAR_KEY_STATE = 0xFF; diff --git a/engines/scumm/vars.cpp b/engines/scumm/vars.cpp index f2031d197a..2b8a9bd4bb 100644 --- a/engines/scumm/vars.cpp +++ b/engines/scumm/vars.cpp @@ -298,12 +298,15 @@ void ScummEngine_v72he::setupScummVars() { if (_game.heversion <= 73) { VAR_NUM_SOUND_CHANNELS = 56; } + + if (_game.heversion >= 74) { + VAR_PLATFORM = 78; + } } void ScummEngine_v80he::setupScummVars() { ScummEngine_v72he::setupScummVars(); - VAR_PLATFORM = 78; VAR_PLATFORM_VERSION = 79; VAR_CURRENT_CHARSET = 80; VAR_SOUNDCODE_TMR = 84; @@ -650,6 +653,15 @@ void ScummEngine_v72he::resetScummVars() { VAR(VAR_NUM_IMAGES) = _numImages - 1; VAR(VAR_NUM_CHARSETS) = _numCharsets - 1; VAR(VAR_NUM_GLOBAL_OBJS) = _numGlobalObjects - 1; + + if (_game.heversion == 74) { + // Uses different values, compared to later HE80+ games. + if (_game.platform == Common::kPlatformMacintosh) { + VAR(VAR_PLATFORM) = 3; + } else { + VAR(VAR_PLATFORM) = 2; + } + } } void ScummEngine_v80he::resetScummVars() { |