Rewrote and greatly simplified the SAGA detector, removing many duplicate and unneeded entries

- Digital music will now always be enabled for all versions if the digital music file is present. The duplicate game entries with and without this file have been removed
- Changed the way compressed sound files are detected. All the duplicate compressed sound entries have been removed
- The Wyrmkeep Windows CD version is now properly distinguished from the DOS CD version
- Unified all the different patch file entries (apart from the Mac patch file entries, which are of a different type). If a patch file is not found, it's ignored

svn-id: r28058
This commit is contained in:
Filippos Karapetis 2007-07-13 16:37:37 +00:00
parent 52f4d0b7d9
commit eedec897f8
6 changed files with 258 additions and 799 deletions

View file

@ -69,7 +69,19 @@ int SagaEngine::getFontsCount() const { return _gameDescription->fontsCount; }
int SagaEngine::getGameId() const { return _gameDescription->gameId; }
int SagaEngine::getGameType() const { return _gameDescription->gameType; }
uint32 SagaEngine::getFeatures() const { return _gameDescription->features; }
uint32 SagaEngine::getFeatures() const {
uint32 result = _gameDescription->features;
if (_gf_wyrmkeep)
result |= GF_WYRMKEEP;
if (_gf_compressed_sounds)
result |= GF_COMPRESSED_SOUNDS;
return result;
}
Common::Language SagaEngine::getLanguage() const { return _gameDescription->desc.language; }
Common::Platform SagaEngine::getPlatform() const { return _gameDescription->desc.platform; }
int SagaEngine::getGameNumber() const { return _gameNumber; }
@ -133,6 +145,18 @@ bool SagaEngine::initGame() {
_displayClip.right = getDisplayInfo().logicalWidth;
_displayClip.bottom = getDisplayInfo().logicalHeight;
if (Common::File::exists("graphics/credit3n.dlt")) {
_gf_wyrmkeep = true;
}
// If a compressed sound file is found in the game's directory, set the compressed flag to true
if (Common::File::exists("music.cmp") || Common::File::exists("musicd.cmp") ||
Common::File::exists("sounds.cmp") || Common::File::exists("soundsd.cmp") ||
Common::File::exists("voices.cmp") || Common::File::exists("voicesd.cmp") ||
Common::File::exists("inherit the earth voices.cmp")) {
_gf_compressed_sounds = true;
}
return _resource->createContexts();
}