From fbc2f89b08db6c336741b984fd4b9708fcd15c3e Mon Sep 17 00:00:00 2001 From: Max Horn Date: Fri, 27 Apr 2007 20:26:54 +0000 Subject: Renamed some game.cpp files to detection.cpp svn-id: r26623 --- engines/agos/detection.cpp | 196 +++++++++++++++++++++++++++++++++++++++++++++ engines/agos/game.cpp | 196 --------------------------------------------- engines/agos/module.mk | 2 +- engines/saga/detection.cpp | 142 ++++++++++++++++++++++++++++++++ engines/saga/game.cpp | 142 -------------------------------- engines/saga/module.mk | 2 +- 6 files changed, 340 insertions(+), 340 deletions(-) create mode 100644 engines/agos/detection.cpp delete mode 100644 engines/agos/game.cpp create mode 100644 engines/saga/detection.cpp delete mode 100644 engines/saga/game.cpp (limited to 'engines') diff --git a/engines/agos/detection.cpp b/engines/agos/detection.cpp new file mode 100644 index 0000000000..e1be6d88f1 --- /dev/null +++ b/engines/agos/detection.cpp @@ -0,0 +1,196 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2001 Ludvig Strigeus + * Copyright (C) 2001-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + * + */ + +#include "common/stdafx.h" + +#include "base/plugins.h" + +#include "common/advancedDetector.h" +#include "common/config-manager.h" + +#include "agos/agos.h" + +namespace AGOS { + +struct AGOSGameDescription { + Common::ADGameDescription desc; + + int gameType; + int gameId; + uint32 features; +}; + +} + +/** + * Conversion table mapping old obsolete target names to the + * corresponding new target and platform combination. + * + */ +static const Common::ADObsoleteGameID obsoleteGameIDsTable[] = { + {"simon1acorn", "simon1", Common::kPlatformAcorn}, + {"simon1amiga", "simon1", Common::kPlatformAmiga}, + {"simon1cd32", "simon1", Common::kPlatformAmiga}, + {"simon1demo", "simon1", Common::kPlatformPC}, + {"simon1dos", "simon1", Common::kPlatformPC}, + {"simon1talkie", "simon1", Common::kPlatformPC}, + {"simon1win", "simon1", Common::kPlatformWindows}, + {"simon2dos", "simon2", Common::kPlatformPC}, + {"simon2talkie", "simon2", Common::kPlatformPC}, + {"simon2mac", "simon2", Common::kPlatformMacintosh}, + {"simon2win", "simon2", Common::kPlatformWindows}, + {0, 0, Common::kPlatformUnknown} +}; + +static const PlainGameDescriptor simonGames[] = { + {"elvira1", "Elvira - Mistress of the Dark"}, + {"elvira2", "Elvira II - The Jaws of Cerberus"}, + {"waxworks", "Waxworks"}, + {"simon1", "Simon the Sorcerer 1"}, + {"simon2", "Simon the Sorcerer 2"}, + {"feeble", "The Feeble Files"}, + {"dimp", "Demon in my Pocket"}, + {"jumble", "Jumble"}, + {"puzzle", "NoPatience"}, + {"swampy", "Swampy Adventures"}, + {0, 0} +}; + +namespace AGOS { + +#include "agosgame.cpp" + +} + +static const Common::ADParams detectionParams = { + // Pointer to ADGameDescription or its superset structure + (const byte *)AGOS::gameDescriptions, + // Size of that superset structure + sizeof(AGOS::AGOSGameDescription), + // Number of bytes to compute MD5 sum for + 5000, + // List of all engine targets + simonGames, + // Structure for autoupgrading obsolete targets + obsoleteGameIDsTable, + // Name of single gameid (optional) + 0, + // List of files for file-based fallback detection (optional) + 0, + // Fallback callback + 0, + // Flags + Common::kADFlagAugmentPreferredTarget +}; + +GameList Engine_AGOS_gameIDList() { + return GameList(simonGames); +} + +GameDescriptor Engine_AGOS_findGameID(const char *gameid) { + return Common::AdvancedDetector::findGameID(gameid, detectionParams); +} + +GameList Engine_AGOS_detectGames(const FSList &fslist) { + return Common::AdvancedDetector::detectAllGames(fslist, detectionParams); +} + +PluginError Engine_AGOS_create(OSystem *syst, Engine **engine) { + assert(engine); + const char *gameid = ConfMan.get("gameid").c_str(); + + //const AGOSGameDescription gd = (const AGOSGameDescription *)Common::AdvancedDetector::detectBestMatchingGame(detectionParams); + //if (gd == 0) { + // return kNoGameDataFoundError; + //} + + if (!scumm_stricmp("elvira1", gameid)) { + *engine = new AGOS::AGOSEngine_Elvira1(syst); + } else if (!scumm_stricmp("elvira2", gameid)) { + *engine = new AGOS::AGOSEngine_Elvira2(syst); + } else if (!scumm_stricmp("waxworks", gameid)) { + *engine = new AGOS::AGOSEngine_Waxworks(syst); + } else if (!scumm_stricmp("simon1", gameid)) { + *engine = new AGOS::AGOSEngine_Simon1(syst); + } else if (!scumm_stricmp("simon2", gameid)) { + *engine = new AGOS::AGOSEngine_Simon2(syst); + } else if (!scumm_stricmp("feeble", gameid)) { + *engine = new AGOS::AGOSEngine_Feeble(syst); + + } else if (!scumm_stricmp("jumble", gameid)) { + *engine = new AGOS::AGOSEngine_PuzzlePack(syst); + } else if (!scumm_stricmp("puzzle", gameid)) { + *engine = new AGOS::AGOSEngine_PuzzlePack(syst); + } else if (!scumm_stricmp("swampy", gameid)) { + *engine = new AGOS::AGOSEngine_PuzzlePack(syst); + + } else { + error("AGOS engine created with invalid gameid"); + } + + return kNoError; +} + +REGISTER_PLUGIN(AGOS, "AGOS", "AGOS (C) Adventure Soft"); + +namespace AGOS { + +bool AGOSEngine::initGame() { + _gameDescription = (const AGOSGameDescription *)Common::AdvancedDetector::detectBestMatchingGame(detectionParams); + return (_gameDescription != 0); +} + + +int AGOSEngine::getGameId() const { + return _gameDescription->gameId; +} + +int AGOSEngine::getGameType() const { + return _gameDescription->gameType; +} + +uint32 AGOSEngine::getFeatures() const { + return _gameDescription->features; +} + +const char *AGOSEngine::getExtra() const { + return _gameDescription->desc.extra; +} + +Common::Language AGOSEngine::getLanguage() const { + return _gameDescription->desc.language; +} + +Common::Platform AGOSEngine::getPlatform() const { + return _gameDescription->desc.platform; +} + +const char *AGOSEngine::getFileName(int type) const { + for (int i = 0; _gameDescription->desc.filesDescriptions[i].fileType; i++) { + if (_gameDescription->desc.filesDescriptions[i].fileType == type) + return _gameDescription->desc.filesDescriptions[i].fileName; + } + return NULL; +} + +} // End of namespace AGOS diff --git a/engines/agos/game.cpp b/engines/agos/game.cpp deleted file mode 100644 index e1be6d88f1..0000000000 --- a/engines/agos/game.cpp +++ /dev/null @@ -1,196 +0,0 @@ -/* ScummVM - Scumm Interpreter - * Copyright (C) 2001 Ludvig Strigeus - * Copyright (C) 2001-2006 The ScummVM project - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include "common/stdafx.h" - -#include "base/plugins.h" - -#include "common/advancedDetector.h" -#include "common/config-manager.h" - -#include "agos/agos.h" - -namespace AGOS { - -struct AGOSGameDescription { - Common::ADGameDescription desc; - - int gameType; - int gameId; - uint32 features; -}; - -} - -/** - * Conversion table mapping old obsolete target names to the - * corresponding new target and platform combination. - * - */ -static const Common::ADObsoleteGameID obsoleteGameIDsTable[] = { - {"simon1acorn", "simon1", Common::kPlatformAcorn}, - {"simon1amiga", "simon1", Common::kPlatformAmiga}, - {"simon1cd32", "simon1", Common::kPlatformAmiga}, - {"simon1demo", "simon1", Common::kPlatformPC}, - {"simon1dos", "simon1", Common::kPlatformPC}, - {"simon1talkie", "simon1", Common::kPlatformPC}, - {"simon1win", "simon1", Common::kPlatformWindows}, - {"simon2dos", "simon2", Common::kPlatformPC}, - {"simon2talkie", "simon2", Common::kPlatformPC}, - {"simon2mac", "simon2", Common::kPlatformMacintosh}, - {"simon2win", "simon2", Common::kPlatformWindows}, - {0, 0, Common::kPlatformUnknown} -}; - -static const PlainGameDescriptor simonGames[] = { - {"elvira1", "Elvira - Mistress of the Dark"}, - {"elvira2", "Elvira II - The Jaws of Cerberus"}, - {"waxworks", "Waxworks"}, - {"simon1", "Simon the Sorcerer 1"}, - {"simon2", "Simon the Sorcerer 2"}, - {"feeble", "The Feeble Files"}, - {"dimp", "Demon in my Pocket"}, - {"jumble", "Jumble"}, - {"puzzle", "NoPatience"}, - {"swampy", "Swampy Adventures"}, - {0, 0} -}; - -namespace AGOS { - -#include "agosgame.cpp" - -} - -static const Common::ADParams detectionParams = { - // Pointer to ADGameDescription or its superset structure - (const byte *)AGOS::gameDescriptions, - // Size of that superset structure - sizeof(AGOS::AGOSGameDescription), - // Number of bytes to compute MD5 sum for - 5000, - // List of all engine targets - simonGames, - // Structure for autoupgrading obsolete targets - obsoleteGameIDsTable, - // Name of single gameid (optional) - 0, - // List of files for file-based fallback detection (optional) - 0, - // Fallback callback - 0, - // Flags - Common::kADFlagAugmentPreferredTarget -}; - -GameList Engine_AGOS_gameIDList() { - return GameList(simonGames); -} - -GameDescriptor Engine_AGOS_findGameID(const char *gameid) { - return Common::AdvancedDetector::findGameID(gameid, detectionParams); -} - -GameList Engine_AGOS_detectGames(const FSList &fslist) { - return Common::AdvancedDetector::detectAllGames(fslist, detectionParams); -} - -PluginError Engine_AGOS_create(OSystem *syst, Engine **engine) { - assert(engine); - const char *gameid = ConfMan.get("gameid").c_str(); - - //const AGOSGameDescription gd = (const AGOSGameDescription *)Common::AdvancedDetector::detectBestMatchingGame(detectionParams); - //if (gd == 0) { - // return kNoGameDataFoundError; - //} - - if (!scumm_stricmp("elvira1", gameid)) { - *engine = new AGOS::AGOSEngine_Elvira1(syst); - } else if (!scumm_stricmp("elvira2", gameid)) { - *engine = new AGOS::AGOSEngine_Elvira2(syst); - } else if (!scumm_stricmp("waxworks", gameid)) { - *engine = new AGOS::AGOSEngine_Waxworks(syst); - } else if (!scumm_stricmp("simon1", gameid)) { - *engine = new AGOS::AGOSEngine_Simon1(syst); - } else if (!scumm_stricmp("simon2", gameid)) { - *engine = new AGOS::AGOSEngine_Simon2(syst); - } else if (!scumm_stricmp("feeble", gameid)) { - *engine = new AGOS::AGOSEngine_Feeble(syst); - - } else if (!scumm_stricmp("jumble", gameid)) { - *engine = new AGOS::AGOSEngine_PuzzlePack(syst); - } else if (!scumm_stricmp("puzzle", gameid)) { - *engine = new AGOS::AGOSEngine_PuzzlePack(syst); - } else if (!scumm_stricmp("swampy", gameid)) { - *engine = new AGOS::AGOSEngine_PuzzlePack(syst); - - } else { - error("AGOS engine created with invalid gameid"); - } - - return kNoError; -} - -REGISTER_PLUGIN(AGOS, "AGOS", "AGOS (C) Adventure Soft"); - -namespace AGOS { - -bool AGOSEngine::initGame() { - _gameDescription = (const AGOSGameDescription *)Common::AdvancedDetector::detectBestMatchingGame(detectionParams); - return (_gameDescription != 0); -} - - -int AGOSEngine::getGameId() const { - return _gameDescription->gameId; -} - -int AGOSEngine::getGameType() const { - return _gameDescription->gameType; -} - -uint32 AGOSEngine::getFeatures() const { - return _gameDescription->features; -} - -const char *AGOSEngine::getExtra() const { - return _gameDescription->desc.extra; -} - -Common::Language AGOSEngine::getLanguage() const { - return _gameDescription->desc.language; -} - -Common::Platform AGOSEngine::getPlatform() const { - return _gameDescription->desc.platform; -} - -const char *AGOSEngine::getFileName(int type) const { - for (int i = 0; _gameDescription->desc.filesDescriptions[i].fileType; i++) { - if (_gameDescription->desc.filesDescriptions[i].fileType == type) - return _gameDescription->desc.filesDescriptions[i].fileName; - } - return NULL; -} - -} // End of namespace AGOS diff --git a/engines/agos/module.mk b/engines/agos/module.mk index 5c3fd8496b..f9dcabb1db 100644 --- a/engines/agos/module.mk +++ b/engines/agos/module.mk @@ -8,9 +8,9 @@ MODULE_OBJS := \ cursor.o \ debug.o \ debugger.o \ + detection.o \ draw.o \ event.o \ - game.o \ gfx.o \ icons.o \ input.o \ diff --git a/engines/saga/detection.cpp b/engines/saga/detection.cpp new file mode 100644 index 0000000000..820331b9c7 --- /dev/null +++ b/engines/saga/detection.cpp @@ -0,0 +1,142 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2004-2006 The ScummVM project + * + * The ReInherit Engine is (C)2000-2003 by Daniel Balsom. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + * + */ + +// Game detection, general game parameters + +#include "saga/saga.h" + +#include "common/config-manager.h" +#include "common/advancedDetector.h" + +#include "saga/rscfile.h" +#include "saga/interface.h" +#include "saga/scene.h" +#include "saga/sagaresnames.h" + + +namespace Saga { +struct SAGAGameDescription { + Common::ADGameDescription desc; + + int gameType; + int gameId; + uint32 features; + const GameDisplayInfo *gameDisplayInfo; + int startSceneNumber; + const GameResourceDescription *resourceDescription; + int fontsCount; + const GameFontDescription *fontDescriptions; + const GameSoundInfo *voiceInfo; + const GameSoundInfo *sfxInfo; + const GameSoundInfo *musicInfo; + int patchesCount; + const GamePatchDescription *patchDescriptions; +}; + +const bool SagaEngine::isBigEndian() const { return (_gameDescription->features & GF_BIG_ENDIAN_DATA) != 0; } +const bool SagaEngine::isMacResources() const { return (getPlatform() == Common::kPlatformMacintosh); } +const GameResourceDescription *SagaEngine::getResourceDescription() { return _gameDescription->resourceDescription; } +const GameSoundInfo *SagaEngine::getVoiceInfo() const { return _gameDescription->voiceInfo; } +const GameSoundInfo *SagaEngine::getSfxInfo() const { return _gameDescription->sfxInfo; } +const GameSoundInfo *SagaEngine::getMusicInfo() const { return _gameDescription->musicInfo; } + +const GameFontDescription *SagaEngine::getFontDescription(int index) { + assert(index < _gameDescription->fontsCount); + return &_gameDescription->fontDescriptions[index]; +} +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; } +Common::Language SagaEngine::getLanguage() const { return _gameDescription->desc.language; } +Common::Platform SagaEngine::getPlatform() const { return _gameDescription->desc.platform; } +int SagaEngine::getGameNumber() const { return _gameNumber; } +int SagaEngine::getStartSceneNumber() const { return _gameDescription->startSceneNumber; } + +int SagaEngine::getPatchesCount() const { return _gameDescription->patchesCount; } +const GamePatchDescription *SagaEngine::getPatchDescriptions() const { return _gameDescription->patchDescriptions; } +const Common::ADGameFileDescription *SagaEngine::getFilesDescriptions() const { return _gameDescription->desc.filesDescriptions; } + +} + +static const PlainGameDescriptor sagaGames[] = { + {"saga", "SAGA Engine game"}, + {"ite", "Inherit the Earth: Quest for the Orb"}, + {"ihnm", "I Have No Mouth and I Must Scream"}, + {0, 0} +}; + +static const Common::ADObsoleteGameID obsoleteGameIDsTable[] = { + {"ite", "saga", Common::kPlatformUnknown}, + {"ihnm", "saga", Common::kPlatformUnknown}, + {0, 0, Common::kPlatformUnknown} +}; + +namespace Saga { + +#include "sagagame.cpp" + +} + +static const Common::ADParams detectionParams = { + // Pointer to ADGameDescription or its superset structure + (const byte *)Saga::gameDescriptions, + // Size of that superset structure + sizeof(Saga::SAGAGameDescription), + // Number of bytes to compute MD5 sum for + 5000, + // List of all engine targets + sagaGames, + // Structure for autoupgrading obsolete targets + obsoleteGameIDsTable, + // Name of single gameid (optional) + "saga", + // List of files for file-based fallback detection (optional) + 0, + // Fallback callback + 0, + // Flags + Common::kADFlagAugmentPreferredTarget +}; + +ADVANCED_DETECTOR_DEFINE_PLUGIN(SAGA, Saga::SagaEngine, detectionParams); + +REGISTER_PLUGIN(SAGA, "SAGA Engine", "Inherit the Earth (C) Wyrmkeep Entertainment"); + +namespace Saga { + +bool SagaEngine::initGame() { + _gameDescription = (const SAGAGameDescription *)Common::AdvancedDetector::detectBestMatchingGame(detectionParams); + if (_gameDescription == 0) + return false; + + _gameDisplayInfo = *_gameDescription->gameDisplayInfo; + _displayClip.right = _gameDisplayInfo.logicalWidth; + _displayClip.bottom = _gameDisplayInfo.logicalHeight; + + return _resource->createContexts(); +} + +} // End of namespace Saga diff --git a/engines/saga/game.cpp b/engines/saga/game.cpp deleted file mode 100644 index 820331b9c7..0000000000 --- a/engines/saga/game.cpp +++ /dev/null @@ -1,142 +0,0 @@ -/* ScummVM - Scumm Interpreter - * Copyright (C) 2004-2006 The ScummVM project - * - * The ReInherit Engine is (C)2000-2003 by Daniel Balsom. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -// Game detection, general game parameters - -#include "saga/saga.h" - -#include "common/config-manager.h" -#include "common/advancedDetector.h" - -#include "saga/rscfile.h" -#include "saga/interface.h" -#include "saga/scene.h" -#include "saga/sagaresnames.h" - - -namespace Saga { -struct SAGAGameDescription { - Common::ADGameDescription desc; - - int gameType; - int gameId; - uint32 features; - const GameDisplayInfo *gameDisplayInfo; - int startSceneNumber; - const GameResourceDescription *resourceDescription; - int fontsCount; - const GameFontDescription *fontDescriptions; - const GameSoundInfo *voiceInfo; - const GameSoundInfo *sfxInfo; - const GameSoundInfo *musicInfo; - int patchesCount; - const GamePatchDescription *patchDescriptions; -}; - -const bool SagaEngine::isBigEndian() const { return (_gameDescription->features & GF_BIG_ENDIAN_DATA) != 0; } -const bool SagaEngine::isMacResources() const { return (getPlatform() == Common::kPlatformMacintosh); } -const GameResourceDescription *SagaEngine::getResourceDescription() { return _gameDescription->resourceDescription; } -const GameSoundInfo *SagaEngine::getVoiceInfo() const { return _gameDescription->voiceInfo; } -const GameSoundInfo *SagaEngine::getSfxInfo() const { return _gameDescription->sfxInfo; } -const GameSoundInfo *SagaEngine::getMusicInfo() const { return _gameDescription->musicInfo; } - -const GameFontDescription *SagaEngine::getFontDescription(int index) { - assert(index < _gameDescription->fontsCount); - return &_gameDescription->fontDescriptions[index]; -} -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; } -Common::Language SagaEngine::getLanguage() const { return _gameDescription->desc.language; } -Common::Platform SagaEngine::getPlatform() const { return _gameDescription->desc.platform; } -int SagaEngine::getGameNumber() const { return _gameNumber; } -int SagaEngine::getStartSceneNumber() const { return _gameDescription->startSceneNumber; } - -int SagaEngine::getPatchesCount() const { return _gameDescription->patchesCount; } -const GamePatchDescription *SagaEngine::getPatchDescriptions() const { return _gameDescription->patchDescriptions; } -const Common::ADGameFileDescription *SagaEngine::getFilesDescriptions() const { return _gameDescription->desc.filesDescriptions; } - -} - -static const PlainGameDescriptor sagaGames[] = { - {"saga", "SAGA Engine game"}, - {"ite", "Inherit the Earth: Quest for the Orb"}, - {"ihnm", "I Have No Mouth and I Must Scream"}, - {0, 0} -}; - -static const Common::ADObsoleteGameID obsoleteGameIDsTable[] = { - {"ite", "saga", Common::kPlatformUnknown}, - {"ihnm", "saga", Common::kPlatformUnknown}, - {0, 0, Common::kPlatformUnknown} -}; - -namespace Saga { - -#include "sagagame.cpp" - -} - -static const Common::ADParams detectionParams = { - // Pointer to ADGameDescription or its superset structure - (const byte *)Saga::gameDescriptions, - // Size of that superset structure - sizeof(Saga::SAGAGameDescription), - // Number of bytes to compute MD5 sum for - 5000, - // List of all engine targets - sagaGames, - // Structure for autoupgrading obsolete targets - obsoleteGameIDsTable, - // Name of single gameid (optional) - "saga", - // List of files for file-based fallback detection (optional) - 0, - // Fallback callback - 0, - // Flags - Common::kADFlagAugmentPreferredTarget -}; - -ADVANCED_DETECTOR_DEFINE_PLUGIN(SAGA, Saga::SagaEngine, detectionParams); - -REGISTER_PLUGIN(SAGA, "SAGA Engine", "Inherit the Earth (C) Wyrmkeep Entertainment"); - -namespace Saga { - -bool SagaEngine::initGame() { - _gameDescription = (const SAGAGameDescription *)Common::AdvancedDetector::detectBestMatchingGame(detectionParams); - if (_gameDescription == 0) - return false; - - _gameDisplayInfo = *_gameDescription->gameDisplayInfo; - _displayClip.right = _gameDisplayInfo.logicalWidth; - _displayClip.bottom = _gameDisplayInfo.logicalHeight; - - return _resource->createContexts(); -} - -} // End of namespace Saga diff --git a/engines/saga/module.mk b/engines/saga/module.mk index 205e243a72..6c1812ad23 100644 --- a/engines/saga/module.mk +++ b/engines/saga/module.mk @@ -4,10 +4,10 @@ MODULE_OBJS := \ actor.o \ animation.o \ console.o \ + detection.o \ events.o \ font.o \ font_map.o \ - game.o \ gfx.o \ ihnm_introproc.o \ image.o \ -- cgit v1.2.3