diff options
-rw-r--r-- | engines/sci/engine/kernel_tables.h | 2 | ||||
-rw-r--r-- | engines/sci/engine/kmovement.cpp | 6 | ||||
-rw-r--r-- | engines/sci/engine/kparse.cpp | 2 | ||||
-rw-r--r-- | engines/sci/engine/static_selectors.cpp | 4 | ||||
-rw-r--r-- | engines/sci/graphics/animate.cpp | 4 | ||||
-rw-r--r-- | engines/sci/graphics/view.cpp | 2 | ||||
-rw-r--r-- | engines/sci/parser/vocabulary.cpp | 2 | ||||
-rw-r--r-- | engines/sci/resource.cpp | 10 | ||||
-rw-r--r-- | engines/sci/sci.cpp | 2 | ||||
-rw-r--r-- | engines/sci/sci.h | 24 | ||||
-rw-r--r-- | engines/sci/sound/drivers/midi.cpp | 2 | ||||
-rw-r--r-- | engines/sci/sound/music.cpp | 2 |
12 files changed, 33 insertions, 29 deletions
diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h index 71892a8bea..6dd08d78ff 100644 --- a/engines/sci/engine/kernel_tables.h +++ b/engines/sci/engine/kernel_tables.h @@ -56,7 +56,7 @@ struct SciKernelMapSubEntry { #define SIG_SCIALL SCI_VERSION_NONE, SCI_VERSION_NONE #define SIG_SCI0 SCI_VERSION_NONE, SCI_VERSION_01 -#define SIG_SCI1 SCI_VERSION_1_EGA, SCI_VERSION_1_LATE +#define SIG_SCI1 SCI_VERSION_1_EGA_ONLY, SCI_VERSION_1_LATE #define SIG_SCI11 SCI_VERSION_1_1, SCI_VERSION_1_1 #define SIG_SINCE_SCI11 SCI_VERSION_1_1, SCI_VERSION_NONE #define SIG_SCI21 SCI_VERSION_2_1, SCI_VERSION_3 diff --git a/engines/sci/engine/kmovement.cpp b/engines/sci/engine/kmovement.cpp index 53a3a53a8a..bc22397c15 100644 --- a/engines/sci/engine/kmovement.cpp +++ b/engines/sci/engine/kmovement.cpp @@ -275,7 +275,7 @@ reg_t kDoBresen(EngineState *s, int argc, reg_t *argv) { bool completed = false; bool handleMoveCount = g_sci->_features->handleMoveCount(); - if (getSciVersion() >= SCI_VERSION_1_EGA) { + if (getSciVersion() >= SCI_VERSION_1_EGA_ONLY) { uint client_signal = readSelectorValue(segMan, client, SELECTOR(signal)); writeSelectorValue(segMan, client, SELECTOR(signal), client_signal & ~kSignalHitObstacle); } @@ -307,7 +307,7 @@ reg_t kDoBresen(EngineState *s, int argc, reg_t *argv) { int16 mover_org_i2 = mover_i2; int16 mover_org_di = mover_di; - if ((getSciVersion() >= SCI_VERSION_1_EGA)) { + if ((getSciVersion() >= SCI_VERSION_1_EGA_ONLY)) { // save current position into mover writeSelectorValue(segMan, mover, SELECTOR(xLast), client_x); writeSelectorValue(segMan, mover, SELECTOR(yLast), client_y); @@ -374,7 +374,7 @@ reg_t kDoBresen(EngineState *s, int argc, reg_t *argv) { writeSelectorValue(segMan, mover, SELECTOR(b_i2), mover_i2); writeSelectorValue(segMan, mover, SELECTOR(b_di), mover_di); - if (getSciVersion() == SCI_VERSION_1_EGA) { + if (getSciVersion() == SCI_VERSION_1_EGA_ONLY) { // We need to compare directly in here, complete may have happened during // the current move if ((client_x == mover_x) && (client_y == mover_y)) diff --git a/engines/sci/engine/kparse.cpp b/engines/sci/engine/kparse.cpp index e8f8ee7152..c0a5e95811 100644 --- a/engines/sci/engine/kparse.cpp +++ b/engines/sci/engine/kparse.cpp @@ -169,7 +169,7 @@ reg_t kSetSynonyms(EngineState *s, int argc, reg_t *argv) { Vocabulary *voc = g_sci->getVocabulary(); // Only SCI0-SCI1 EGA games had a parser. In newer versions, this is a stub - if (getSciVersion() > SCI_VERSION_1_EGA) + if (getSciVersion() > SCI_VERSION_1_EGA_ONLY) return s->r_acc; voc->clearSynonyms(); diff --git a/engines/sci/engine/static_selectors.cpp b/engines/sci/engine/static_selectors.cpp index 4bb61a0658..96507e3e1b 100644 --- a/engines/sci/engine/static_selectors.cpp +++ b/engines/sci/engine/static_selectors.cpp @@ -185,7 +185,7 @@ Common::StringArray Kernel::checkStaticSelectorNames() { // dispose comes right after init names[initSelectorPos + 1] = "dispose"; - if ((getSciVersion() >= SCI_VERSION_1_EGA)) { + if ((getSciVersion() >= SCI_VERSION_1_EGA_ONLY)) { // Find the xLast and yLast selectors, used in kDoBresen // xLast and yLast always come between illegalBits and xStep @@ -205,7 +205,7 @@ Common::StringArray Kernel::checkStaticSelectorNames() { names[xLastSelectorPos] = "xLast"; names[yLastSelectorPos] = "yLast"; - } // if ((getSciVersion() >= SCI_VERSION_1_EGA)) + } // if ((getSciVersion() >= SCI_VERSION_1_EGA_ONLY)) } // if (actorClass) _segMan->uninstantiateScript(998); diff --git a/engines/sci/graphics/animate.cpp b/engines/sci/graphics/animate.cpp index 0eb7b954a4..d8dd43afb1 100644 --- a/engines/sci/graphics/animate.cpp +++ b/engines/sci/graphics/animate.cpp @@ -637,10 +637,10 @@ void GfxAnimate::kernelAnimate(reg_t listReference, bool cycle, int argc, reg_t // beginUpdate()/endUpdate() were introduced SCI1. // Calling those for SCI0 will work most of the time but breaks minor // stuff like percentage bar of qfg1ega at the character skill screen. - if (getSciVersion() >= SCI_VERSION_1_EGA) + if (getSciVersion() >= SCI_VERSION_1_EGA_ONLY) _ports->beginUpdate(_ports->_picWind); update(); - if (getSciVersion() >= SCI_VERSION_1_EGA) + if (getSciVersion() >= SCI_VERSION_1_EGA_ONLY) _ports->endUpdate(_ports->_picWind); } diff --git a/engines/sci/graphics/view.cpp b/engines/sci/graphics/view.cpp index 2956ea786e..8eacecd1f9 100644 --- a/engines/sci/graphics/view.cpp +++ b/engines/sci/graphics/view.cpp @@ -132,7 +132,7 @@ void GfxView::initData(GuiResourceId resourceId) { // SCI1 VGA conversion games (which will get detected as SCI1EARLY/MIDDLE/LATE) have some views // with broken mapping tables. I guess those games won't use the mapping, so I rather disable it // for them - if (getSciVersion() == SCI_VERSION_1_EGA) { + if (getSciVersion() == SCI_VERSION_1_EGA_ONLY) { _EGAmapping = &_resourceData[palOffset]; for (EGAmapNr = 0; EGAmapNr < SCI_VIEW_EGAMAPPING_COUNT; EGAmapNr++) { if (memcmp(_EGAmapping, EGAmappingStraight, SCI_VIEW_EGAMAPPING_SIZE) != 0) diff --git a/engines/sci/parser/vocabulary.cpp b/engines/sci/parser/vocabulary.cpp index 8d59df5d58..25043401cc 100644 --- a/engines/sci/parser/vocabulary.cpp +++ b/engines/sci/parser/vocabulary.cpp @@ -63,7 +63,7 @@ Vocabulary::Vocabulary(ResourceManager *resMan, bool foreign) : _resMan(resMan), _resourceIdBranches += 10; } - if (getSciVersion() <= SCI_VERSION_1_EGA && loadParserWords()) { + if (getSciVersion() <= SCI_VERSION_1_EGA_ONLY && loadParserWords()) { loadSuffixes(); if (loadBranches()) // Now build a GNF grammar out of this diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp index a16f7126c3..1b3b481762 100644 --- a/engines/sci/resource.cpp +++ b/engines/sci/resource.cpp @@ -67,7 +67,7 @@ const char *getSciVersionDesc(SciVersion version) { return "Late SCI0"; case SCI_VERSION_01: return "SCI01"; - case SCI_VERSION_1_EGA: + case SCI_VERSION_1_EGA_ONLY: return "SCI1 EGA"; case SCI_VERSION_1_EARLY: return "Early SCI1"; @@ -2127,9 +2127,9 @@ void ResourceManager::detectSciVersion() { if (viewCompression != kCompLZW) { // If it's a different compression type from kCompLZW, the game is probably - // SCI_VERSION_1_EGA or later. If the views are uncompressed, it is + // SCI_VERSION_1_EGA_ONLY or later. If the views are uncompressed, it is // likely not an early disk game. - s_sciVersion = SCI_VERSION_1_EGA; + s_sciVersion = SCI_VERSION_1_EGA_ONLY; oldDecompressors = false; } @@ -2243,9 +2243,9 @@ void ResourceManager::detectSciVersion() { return; } - // New decompressors. It's either SCI_VERSION_1_EGA or SCI_VERSION_1_EARLY. + // New decompressors. It's either SCI_VERSION_1_EGA_ONLY or SCI_VERSION_1_EARLY. if (hasSci1Voc900()) { - s_sciVersion = SCI_VERSION_1_EGA; + s_sciVersion = SCI_VERSION_1_EGA_ONLY; return; } diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp index b8a04066ac..b460b06662 100644 --- a/engines/sci/sci.cpp +++ b/engines/sci/sci.cpp @@ -227,7 +227,7 @@ Common::Error SciEngine::run() { _features = new GameFeatures(segMan, _kernel); // Only SCI0, SCI01 and SCI1 EGA games used a parser - _vocabulary = (getSciVersion() <= SCI_VERSION_1_EGA) ? new Vocabulary(_resMan, false) : NULL; + _vocabulary = (getSciVersion() <= SCI_VERSION_1_EGA_ONLY) ? new Vocabulary(_resMan, false) : NULL; // Also, XMAS1990 apparently had a parser too. Refer to http://forums.scummvm.org/viewtopic.php?t=9135 if (getGameId() == GID_CHRISTMAS1990) _vocabulary = new Vocabulary(_resMan, false); diff --git a/engines/sci/sci.h b/engines/sci/sci.h index b3e398325f..72fbe0c71f 100644 --- a/engines/sci/sci.h +++ b/engines/sci/sci.h @@ -180,20 +180,24 @@ enum SciGameId { GID_FANMADE // FIXME: Do we really need/want this? }; -/** SCI versions */ +/** + * SCI versions + * For more information, check here: + * http://wiki.scummvm.org/index.php/Sierra_Game_Versions#SCI_Games + */ enum SciVersion { SCI_VERSION_NONE, - SCI_VERSION_0_EARLY, // Early KQ4, 1988 xmas card + SCI_VERSION_0_EARLY, // KQ4 early, LSL2 early, XMAS card 1988 SCI_VERSION_0_LATE, // KQ4, LSL2, LSL3, SQ3 etc SCI_VERSION_01, // KQ1 and multilingual games (S.old.*) - SCI_VERSION_1_EGA, // EGA with parser, QFG2 - SCI_VERSION_1_EARLY, // KQ5. (EGA/VGA) - SCI_VERSION_1_MIDDLE, // LSL1, JONESCD. (EGA?/VGA) - SCI_VERSION_1_LATE, // ECO1, LSL5. (EGA/VGA) - SCI_VERSION_1_1, // KQ6, ECO2 - SCI_VERSION_2, // GK1, PQ4 (Floppy), QFG4 (Floppy) - SCI_VERSION_2_1, // GK2, KQ7, SQ6, Torin - SCI_VERSION_3 // LSL7, RAMA, Lighthouse + SCI_VERSION_1_EGA_ONLY, // SCI 1 EGA with parser (i.e. QFG2 only) + SCI_VERSION_1_EARLY, // KQ5 floppy, SQ4 floppy, XMAS card 1990, Fairy tales, Jones floppy + SCI_VERSION_1_MIDDLE, // LSL1, Jones CD + SCI_VERSION_1_LATE, // Dr. Brain 1, EcoQuest 1, Longbow, PQ3, SQ1, LSL5, KQ5 CD + SCI_VERSION_1_1, // Dr. Brain 2, EcoQuest 1 CD, EcoQuest 2, KQ6, QFG3, SQ4CD, XMAS 1992 and many more + SCI_VERSION_2, // GK1, PQ4 floppy, QFG4 floppy + SCI_VERSION_2_1, // GK2, KQ7, LSL6 hires, MUMG Deluxe, Phantasmagoria 1, PQ4CD, PQ:SWAT, QFG4CD, Shivers 1, SQ6, Torin + SCI_VERSION_3 // LSL7, Lighthouse, RAMA, Phantasmagoria 2 }; /** Supported languages */ diff --git a/engines/sci/sound/drivers/midi.cpp b/engines/sci/sound/drivers/midi.cpp index c350d3826f..65ccaecc6f 100644 --- a/engines/sci/sound/drivers/midi.cpp +++ b/engines/sci/sound/drivers/midi.cpp @@ -955,7 +955,7 @@ int MidiPlayer_Midi::open(ResourceManager *resMan) { // TODO: The MT-32 <-> GM mapping hasn't been worked on for SCI1 games. Throw // a warning to the user - if (getSciVersion() >= SCI_VERSION_1_EGA) + if (getSciVersion() >= SCI_VERSION_1_EGA_ONLY) warning("The automatic mapping for General MIDI hasn't been worked on for " "SCI1 games. Music might sound wrong or broken. Please choose another " "music driver for this game (e.g. Adlib or MT-32) if you are " diff --git a/engines/sci/sound/music.cpp b/engines/sci/sound/music.cpp index f0963e7d64..a08525d760 100644 --- a/engines/sci/sound/music.cpp +++ b/engines/sci/sound/music.cpp @@ -75,7 +75,7 @@ void SciMusic::init() { deviceFlags |= MDT_PREFER_GM; // Currently our CMS implementation only supports SCI1(.1) - if (getSciVersion() >= SCI_VERSION_1_EGA && getSciVersion() <= SCI_VERSION_1_1) + if (getSciVersion() >= SCI_VERSION_1_EGA_ONLY && getSciVersion() <= SCI_VERSION_1_1) deviceFlags |= MDT_CMS; uint32 dev = MidiDriver::detectDevice(deviceFlags); |