Converted the remaining engines to use MetaEngine

svn-id: r30728
This commit is contained in:
Jordi Vilalta Prat 2008-02-02 02:35:13 +00:00
parent ec715ea1ec
commit 5165ff448d
12 changed files with 156 additions and 23 deletions

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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) \

View file

@ -191,6 +191,7 @@ public:
virtual const char *getName() const {
return "Parallaction engine";
}
virtual const char *getCopyright() const {
return "Nippon Safes Inc. (C) Dynabyte";
}

View file

@ -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");