Converted the remaining engines to use MetaEngine
svn-id: r30728
This commit is contained in:
parent
ec715ea1ec
commit
5165ff448d
12 changed files with 156 additions and 23 deletions
|
@ -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");
|
||||
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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) \
|
||||
|
|
|
@ -191,6 +191,7 @@ public:
|
|||
virtual const char *getName() const {
|
||||
return "Parallaction engine";
|
||||
}
|
||||
|
||||
virtual const char *getCopyright() const {
|
||||
return "Nippon Safes Inc. (C) Dynabyte";
|
||||
}
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue