diff options
author | Jordi Vilalta Prat | 2008-02-02 02:35:13 +0000 |
---|---|---|
committer | Jordi Vilalta Prat | 2008-02-02 02:35:13 +0000 |
commit | 5165ff448d2329e3a27948fd73821f314eeb520d (patch) | |
tree | 620819d618796744f3917d70c6d484b07debd266 | |
parent | ec715ea1ecc7ee0d85ed298f75ce0404d10d622b (diff) | |
download | scummvm-rg350-5165ff448d2329e3a27948fd73821f314eeb520d.tar.gz scummvm-rg350-5165ff448d2329e3a27948fd73821f314eeb520d.tar.bz2 scummvm-rg350-5165ff448d2329e3a27948fd73821f314eeb520d.zip |
Converted the remaining engines to use MetaEngine
svn-id: r30728
-rw-r--r-- | common/advancedDetector.h | 2 | ||||
-rw-r--r-- | engines/agos/detection.cpp | 19 | ||||
-rw-r--r-- | engines/cine/detection.cpp | 19 | ||||
-rw-r--r-- | engines/cruise/detection.cpp | 19 | ||||
-rw-r--r-- | engines/drascula/detection.cpp | 20 | ||||
-rw-r--r-- | engines/gob/detection.cpp | 19 | ||||
-rw-r--r-- | engines/igor/detection.cpp | 19 | ||||
-rw-r--r-- | engines/kyra/detection.cpp | 21 | ||||
-rw-r--r-- | engines/lure/detection.cpp | 19 | ||||
-rw-r--r-- | engines/metaengine.h | 2 | ||||
-rw-r--r-- | engines/parallaction/detection.cpp | 1 | ||||
-rw-r--r-- | engines/saga/detection.cpp | 19 |
12 files changed, 156 insertions, 23 deletions
diff --git a/common/advancedDetector.h b/common/advancedDetector.h index 171673771c..484eb84e28 100644 --- a/common/advancedDetector.h +++ b/common/advancedDetector.h @@ -281,7 +281,7 @@ class AdvancedMetaEngine : public MetaEngine { const Common::ADParams ¶ms; public: AdvancedMetaEngine(const Common::ADParams &dp) : params(dp) {} - + // To be provided by subclasses virtual bool createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const = 0; diff --git a/engines/agos/detection.cpp b/engines/agos/detection.cpp index c309ccfecd..83d948322e 100644 --- a/engines/agos/detection.cpp +++ b/engines/agos/detection.cpp @@ -99,7 +99,22 @@ static const Common::ADParams detectionParams = { Common::kADFlagAugmentPreferredTarget }; -bool engineCreateAgos(OSystem *syst, Engine **engine, Common::EncapsulatedADGameDesc encapsulatedDesc) { +class AgosMetaEngine : public AdvancedMetaEngine { +public: + AgosMetaEngine() : AdvancedMetaEngine(detectionParams) {} + + virtual const char *getName() const { + return "AGOS"; + } + + virtual const char *getCopyright() const { + return "AGOS (C) Adventure Soft"; + } + + virtual bool createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const; +}; + +bool AgosMetaEngine::createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const { const AGOS::AGOSGameDescription *gd = (const AGOS::AGOSGameDescription *)(encapsulatedDesc.realDesc); bool res = true; @@ -136,7 +151,7 @@ bool engineCreateAgos(OSystem *syst, Engine **engine, Common::EncapsulatedADGame return res; } -ADVANCED_DETECTOR_DEFINE_PLUGIN(AGOS, engineCreateAgos, detectionParams); +META_COMPATIBLITY_WRAPPER(AGOS, AgosMetaEngine); REGISTER_PLUGIN(AGOS, "AGOS", "AGOS (C) Adventure Soft"); diff --git a/engines/cine/detection.cpp b/engines/cine/detection.cpp index b19db5e19f..bc22234cba 100644 --- a/engines/cine/detection.cpp +++ b/engines/cine/detection.cpp @@ -488,7 +488,22 @@ static const Common::ADParams detectionParams = { Common::kADFlagAugmentPreferredTarget }; -static bool Engine_CINE_createInstance(OSystem *syst, Engine **engine, Common::EncapsulatedADGameDesc encapsulatedDesc) { +class CineMetaEngine : public AdvancedMetaEngine { +public: + CineMetaEngine() : AdvancedMetaEngine(detectionParams) {} + + virtual const char *getName() const { + return "Cinematique evo 1 engine"; + } + + virtual const char *getCopyright() const { + return "Future Wars & Operation Stealth (C) Delphine Software"; + } + + virtual bool createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const; +}; + +bool CineMetaEngine::createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const { const Cine::CINEGameDescription *gd = (const Cine::CINEGameDescription *)(encapsulatedDesc.realDesc); if (gd) { *engine = new Cine::CineEngine(syst, gd); @@ -496,6 +511,6 @@ static bool Engine_CINE_createInstance(OSystem *syst, Engine **engine, Common::E return gd != 0; } -ADVANCED_DETECTOR_DEFINE_PLUGIN(CINE, Engine_CINE_createInstance, detectionParams); +META_COMPATIBLITY_WRAPPER(CINE, CineMetaEngine); REGISTER_PLUGIN(CINE, "Cinematique evo 1 engine", "Future Wars & Operation Stealth (C) Delphine Software"); diff --git a/engines/cruise/detection.cpp b/engines/cruise/detection.cpp index c1f6d1e377..641a570f91 100644 --- a/engines/cruise/detection.cpp +++ b/engines/cruise/detection.cpp @@ -123,7 +123,22 @@ static const Common::ADParams detectionParams = { Common::kADFlagAugmentPreferredTarget }; -static bool Engine_CRUISE_createInstance(OSystem *syst, Engine **engine, Common::EncapsulatedADGameDesc encapsulatedDesc) { +class CruiseMetaEngine : public AdvancedMetaEngine { +public: + CruiseMetaEngine() : AdvancedMetaEngine(detectionParams) {} + + virtual const char *getName() const { + return "Cinematique evo 2 engine"; + } + + virtual const char *getCopyright() const { + return "Cruise for a Corpse (C) Delphine Software"; + } + + virtual bool createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const; +}; + +bool CruiseMetaEngine::createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const { const Cruise::CRUISEGameDescription *gd = (const Cruise::CRUISEGameDescription *)(encapsulatedDesc.realDesc); if (gd) { *engine = new Cruise::CruiseEngine(syst, gd); @@ -131,6 +146,6 @@ static bool Engine_CRUISE_createInstance(OSystem *syst, Engine **engine, Common: return gd != 0; } -ADVANCED_DETECTOR_DEFINE_PLUGIN(CRUISE, Engine_CRUISE_createInstance, detectionParams); +META_COMPATIBLITY_WRAPPER(CRUISE, CruiseMetaEngine); REGISTER_PLUGIN(CRUISE, "Cinematique evo 2 engine", "Cruise for a Corpse (C) Delphine Software"); diff --git a/engines/drascula/detection.cpp b/engines/drascula/detection.cpp index a5c9c2c512..d18879f290 100644 --- a/engines/drascula/detection.cpp +++ b/engines/drascula/detection.cpp @@ -163,7 +163,22 @@ static const Common::ADParams detectionParams = { Common::kADFlagAugmentPreferredTarget }; -static bool Engine_DRASCULA_createInstance(OSystem *syst, Engine **engine, Common::EncapsulatedADGameDesc encapsulatedDesc) { +class DrasculaMetaEngine : public AdvancedMetaEngine { +public: + DrasculaMetaEngine() : AdvancedMetaEngine(detectionParams) {} + + virtual const char *getName() const { + return "Drascula Engine"; + } + + virtual const char *getCopyright() const { + return "Drascula Engine (C) 2000 Alcachofa Soft, 1996 (C) Digital Dreams Multimedia, 1994 (C) Emilio de Paz"; + } + + virtual bool createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const; +}; + +bool DrasculaMetaEngine::createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const { const Drascula::DrasculaGameDescription *gd = (const Drascula::DrasculaGameDescription *)(encapsulatedDesc.realDesc); if (gd) { *engine = new Drascula::DrasculaEngine(syst, gd); @@ -171,7 +186,6 @@ static bool Engine_DRASCULA_createInstance(OSystem *syst, Engine **engine, Commo return gd != 0; } -ADVANCED_DETECTOR_DEFINE_PLUGIN(DRASCULA, Engine_DRASCULA_createInstance, detectionParams); +META_COMPATIBLITY_WRAPPER(DRASCULA, DrasculaMetaEngine); REGISTER_PLUGIN(DRASCULA, "Drascula Engine", "Drascula Engine (C) 2000 Alcachofa Soft, 1996 (C) Digital Dreams Multimedia, 1994 (C) Emilio de Paz"); - diff --git a/engines/gob/detection.cpp b/engines/gob/detection.cpp index cbf0b99fd9..96e16516ad 100644 --- a/engines/gob/detection.cpp +++ b/engines/gob/detection.cpp @@ -1742,7 +1742,22 @@ static const ADParams detectionParams = { kADFlagAugmentPreferredTarget }; -static bool Engine_GOB_createInstance(OSystem *syst, Engine **engine, Common::EncapsulatedADGameDesc encapsulatedDesc) { +class GobMetaEngine : public AdvancedMetaEngine { +public: + GobMetaEngine() : AdvancedMetaEngine(detectionParams) {} + + virtual const char *getName() const { + return "Gob Engine"; + } + + virtual const char *getCopyright() const { + return "Goblins Games (C) Coktel Vision"; + } + + virtual bool createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const; +}; + +bool GobMetaEngine::createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const { const Gob::GOBGameDescription *gd = (const Gob::GOBGameDescription *)(encapsulatedDesc.realDesc); if (gd) { *engine = new Gob::GobEngine(syst); @@ -1751,7 +1766,7 @@ static bool Engine_GOB_createInstance(OSystem *syst, Engine **engine, Common::En return gd != 0; } -ADVANCED_DETECTOR_DEFINE_PLUGIN(GOB, Engine_GOB_createInstance, detectionParams); +META_COMPATIBLITY_WRAPPER(GOB, GobMetaEngine); REGISTER_PLUGIN(GOB, "Gob Engine", "Goblins Games (C) Coktel Vision"); diff --git a/engines/igor/detection.cpp b/engines/igor/detection.cpp index d34b352dea..f4c3c3450c 100644 --- a/engines/igor/detection.cpp +++ b/engines/igor/detection.cpp @@ -105,7 +105,22 @@ static const Common::ADParams igorDetectionParams = { Common::kADFlagAugmentPreferredTarget }; -static bool Engine_IGOR_createInstance(OSystem *syst, Engine **engine, Common::EncapsulatedADGameDesc encapsulatedDesc) { +class IgorMetaEngine : public AdvancedMetaEngine { +public: + IgorMetaEngine() : AdvancedMetaEngine(detectionParams) {} + + virtual const char *getName() const { + return "Igor: Objective Uikokahonia"; + } + + virtual const char *getCopyright() const { + return "Igor: Objective Uikokahonia (C) Pendulo Studios"; + } + + virtual bool createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const; +}; + +bool IgorMetaEngine::createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const { const IgorGameDescription *gd = (const IgorGameDescription *)(encapsulatedDesc.realDesc); if (gd) { Igor::DetectedGameVersion dgv; @@ -119,6 +134,6 @@ static bool Engine_IGOR_createInstance(OSystem *syst, Engine **engine, Common::E return gd != 0; } -ADVANCED_DETECTOR_DEFINE_PLUGIN(IGOR, Engine_IGOR_createInstance, igorDetectionParams); +META_COMPATIBLITY_WRAPPER(IGOR, IgorMetaEngine); REGISTER_PLUGIN(IGOR, "Igor: Objective Uikokahonia", "Igor: Objective Uikokahonia (C) Pendulo Studios"); diff --git a/engines/kyra/detection.cpp b/engines/kyra/detection.cpp index 84bac1a182..a566e41816 100644 --- a/engines/kyra/detection.cpp +++ b/engines/kyra/detection.cpp @@ -430,7 +430,22 @@ const Common::ADParams detectionParams = { } // End of anonymous namespace -bool engineCreateKyra(OSystem *syst, Engine **engine, Common::EncapsulatedADGameDesc encapsulatedDesc) { +class KyraMetaEngine : public AdvancedMetaEngine { +public: + KyraMetaEngine() : AdvancedMetaEngine(detectionParams) {} + + virtual const char *getName() const { + return "Legend of Kyrandia Engine"; + } + + virtual const char *getCopyright() const { + return "The Legend of Kyrandia (C) Westwood Studios"; + } + + virtual bool createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const; +}; + +bool KyraMetaEngine::createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const { const KYRAGameDescription *gd = (const KYRAGameDescription *)(encapsulatedDesc.realDesc); bool res = true; @@ -469,8 +484,6 @@ bool engineCreateKyra(OSystem *syst, Engine **engine, Common::EncapsulatedADGame return res; } -ADVANCED_DETECTOR_DEFINE_PLUGIN(KYRA, engineCreateKyra, detectionParams); +META_COMPATIBLITY_WRAPPER(KYRA, KyraMetaEngine); REGISTER_PLUGIN(KYRA, "Legend of Kyrandia Engine", "The Legend of Kyrandia (C) Westwood Studios"); - - diff --git a/engines/lure/detection.cpp b/engines/lure/detection.cpp index 0675e5ea4b..9c3303f620 100644 --- a/engines/lure/detection.cpp +++ b/engines/lure/detection.cpp @@ -174,7 +174,22 @@ static const Common::ADParams detectionParams = { Common::kADFlagAugmentPreferredTarget | Common::kADFlagUseExtraAsHint }; -static bool Engine_LURE_createInstance(OSystem *syst, Engine **engine, Common::EncapsulatedADGameDesc encapsulatedDesc) { +class LureMetaEngine : public AdvancedMetaEngine { +public: + LureMetaEngine() : AdvancedMetaEngine(detectionParams) {} + + virtual const char *getName() const { + return "Lure of the Temptress Engine"; + } + + virtual const char *getCopyright() const { + return "Lure of the Temptress (C) Revolution"; + } + + virtual bool createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const; +}; + +bool LureMetaEngine::createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const { const Lure::LureGameDescription *gd = (const Lure::LureGameDescription *)(encapsulatedDesc.realDesc); if (gd) { *engine = new Lure::LureEngine(syst, gd); @@ -182,6 +197,6 @@ static bool Engine_LURE_createInstance(OSystem *syst, Engine **engine, Common::E return gd != 0; } -ADVANCED_DETECTOR_DEFINE_PLUGIN(LURE, Engine_LURE_createInstance, detectionParams); +META_COMPATIBLITY_WRAPPER(LURE, LureMetaEngine); REGISTER_PLUGIN(LURE, "Lure of the Temptress Engine", "Lure of the Temptress (C) Revolution"); diff --git a/engines/metaengine.h b/engines/metaengine.h index a290044d2b..255668e55d 100644 --- a/engines/metaengine.h +++ b/engines/metaengine.h @@ -61,7 +61,7 @@ public: /** * The META_COMPATIBLITY_WRAPPER macro is there to ease the transition from the * old plugin API to the new MetaEngine class. Ultimately, this macro will go - * and REGISTER_PLUGIN will be changedd to simply take an ID and a METACLASS. + * and REGISTER_PLUGIN will be changed to simply take an ID and a METACLASS. * Until then, use META_COMPATIBLITY_WRAPPER + REGISTER_PLUGIN. */ #define META_COMPATIBLITY_WRAPPER(ID,METACLASS) \ diff --git a/engines/parallaction/detection.cpp b/engines/parallaction/detection.cpp index b546d7fce6..c5bfb8e30c 100644 --- a/engines/parallaction/detection.cpp +++ b/engines/parallaction/detection.cpp @@ -191,6 +191,7 @@ public: virtual const char *getName() const { return "Parallaction engine"; } + virtual const char *getCopyright() const { return "Nippon Safes Inc. (C) Dynabyte"; } diff --git a/engines/saga/detection.cpp b/engines/saga/detection.cpp index 74acdf0743..9d88eb9d29 100644 --- a/engines/saga/detection.cpp +++ b/engines/saga/detection.cpp @@ -141,7 +141,22 @@ static const Common::ADParams detectionParams = { Common::kADFlagAugmentPreferredTarget }; -static bool Engine_SAGA_createInstance(OSystem *syst, Engine **engine, Common::EncapsulatedADGameDesc encapsulatedDesc) { +class SagaMetaEngine : public AdvancedMetaEngine { +public: + SagaMetaEngine() : AdvancedMetaEngine(detectionParams) {} + + virtual const char *getName() const { + return "Saga engine"; + } + + virtual const char *getCopyright() const { + return "Inherit the Earth (C) Wyrmkeep Entertainment"; + } + + virtual bool createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const; +}; + +bool SagaMetaEngine::createInstance(OSystem *syst, Engine **engine, const Common::EncapsulatedADGameDesc &encapsulatedDesc) const { const Saga::SAGAGameDescription *gd = (const Saga::SAGAGameDescription *)(encapsulatedDesc.realDesc); if (gd) { *engine = new Saga::SagaEngine(syst, gd); @@ -149,7 +164,7 @@ static bool Engine_SAGA_createInstance(OSystem *syst, Engine **engine, Common::E return gd != 0; } -ADVANCED_DETECTOR_DEFINE_PLUGIN(SAGA, Engine_SAGA_createInstance, detectionParams); +META_COMPATIBLITY_WRAPPER(SAGA, SagaMetaEngine); REGISTER_PLUGIN(SAGA, "SAGA Engine", "Inherit the Earth (C) Wyrmkeep Entertainment"); |