diff --git a/engines/chamber/chamber.cpp b/engines/chamber/chamber.cpp index a30f6715997..88a3693d2de 100644 --- a/engines/chamber/chamber.cpp +++ b/engines/chamber/chamber.cpp @@ -38,9 +38,10 @@ namespace Chamber { ChamberEngine *g_vm; -ChamberEngine::ChamberEngine(OSystem *syst) +ChamberEngine::ChamberEngine(OSystem *syst, const ADGameDescription *desc) : Engine(syst) { g_vm = this; + _gameDescription = desc; const Common::FSNode gameDataDir(ConfMan.get("path")); diff --git a/engines/chamber/chamber.h b/engines/chamber/chamber.h index 0131c468fbc..58dd0b8ec36 100644 --- a/engines/chamber/chamber.h +++ b/engines/chamber/chamber.h @@ -35,6 +35,8 @@ class SoundHandle; class PCSpeaker; } +struct ADGameDescription; + namespace Chamber { class ChamberEngine : public Engine { @@ -43,9 +45,11 @@ private: Common::RandomSource *_rnd; public: - ChamberEngine(OSystem *syst); + ChamberEngine(OSystem *syst, const ADGameDescription *desc); ~ChamberEngine(); + Common::Language getLanguage() const; + Common::Error run() override; bool hasFeature(EngineFeature f) const override; bool canLoadGameStateCurrently() override { return true; } @@ -66,6 +70,9 @@ public: Audio::PCSpeaker *_speakerStream; Audio::SoundHandle *_speakerHandle; + +private: + const ADGameDescription *_gameDescription; }; void init(void); diff --git a/engines/chamber/metaengine.cpp b/engines/chamber/metaengine.cpp index d2ce107dfbf..1f2d556db43 100644 --- a/engines/chamber/metaengine.cpp +++ b/engines/chamber/metaengine.cpp @@ -23,6 +23,14 @@ #include "chamber/chamber.h" #include "engines/advancedDetector.h" +namespace Chamber { + +Common::Language ChamberEngine::getLanguage() const { + return _gameDescription->language; +} + +} // end of namespace Chamber + class ChamberMetaEngine : public AdvancedMetaEngine { public: const char *getName() const override { @@ -33,7 +41,7 @@ public: }; Common::Error ChamberMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const { - *engine = new Chamber::ChamberEngine(syst); + *engine = new Chamber::ChamberEngine(syst, desc); return Common::kNoError; }