aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/advancedDetector.h2
-rw-r--r--engines/agos/detection.cpp19
-rw-r--r--engines/cine/detection.cpp19
-rw-r--r--engines/cruise/detection.cpp19
-rw-r--r--engines/drascula/detection.cpp20
-rw-r--r--engines/gob/detection.cpp19
-rw-r--r--engines/igor/detection.cpp19
-rw-r--r--engines/kyra/detection.cpp21
-rw-r--r--engines/lure/detection.cpp19
-rw-r--r--engines/metaengine.h2
-rw-r--r--engines/parallaction/detection.cpp1
-rw-r--r--engines/saga/detection.cpp19
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 &params;
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");