diff options
Diffstat (limited to 'engines/sludge/language.h')
-rw-r--r-- | engines/sludge/language.h | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/engines/sludge/language.h b/engines/sludge/language.h index 2f8d6c0799..9d3f2d2d12 100644 --- a/engines/sludge/language.h +++ b/engines/sludge/language.h @@ -28,17 +28,32 @@ namespace Sludge { -struct settingsStruct { - uint languageID; - uint numLanguages; +class LanguageManager { +public: + LanguageManager() : + _languageID(0), + _languageIdx(-1), + _numLanguages(0), + _languageTable(0), + _languageNames(0) {} + ~LanguageManager(); + + void init(Common::File *table); + void setLanguageID(uint id); + void saveLanguageSetting(Common::WriteStream *writeStream); + void loadLanguageSetting(Common::SeekableReadStream *readStream); + +private: + uint _languageID; // id of selected language + int _languageIdx; // index of selected language in table + uint _numLanguages; // number of existing languages in game + uint *_languageTable; // indexes of existing languages + Common::String *_languageNames; // language names + + int getLanguageForFileB(); + void setLanguageIndex(int idx); }; -extern settingsStruct gameSettings; - -int getLanguageForFileB(); - -void makeLanguageTable(Common::File *table); - } // End of namespace Sludge #endif |