diff options
Diffstat (limited to 'engines/sci/engine')
-rw-r--r-- | engines/sci/engine/features.cpp | 11 | ||||
-rw-r--r-- | engines/sci/engine/state.cpp | 8 |
2 files changed, 6 insertions, 13 deletions
diff --git a/engines/sci/engine/features.cpp b/engines/sci/engine/features.cpp index f99d412c64..02aeab278b 100644 --- a/engines/sci/engine/features.cpp +++ b/engines/sci/engine/features.cpp @@ -275,15 +275,8 @@ SciVersion GameFeatures::detectLofsType() { return _lofsType; } - // Find the "Game" object, super class of the actual game-object - const reg_t game = g_sci->getGameObject(); - const Object *gameObject = _segMan->getObject(game); - reg_t gameSuperClass = NULL_REG; - if (gameObject) { - gameSuperClass = gameObject->getSuperClassSelector(); - } - - // Find a function of the game object which invokes lofsa/lofss + // Find a function of the "Game" object (which is the game super class) which invokes lofsa/lofss + reg_t gameSuperClass = g_sci->getGameSuperClassAddress(); bool found = false; if (!gameSuperClass.isNull()) { Common::String gameSuperClassName = _segMan->getObjectName(gameSuperClass); diff --git a/engines/sci/engine/state.cpp b/engines/sci/engine/state.cpp index a069344d61..5e0e7e21d5 100644 --- a/engines/sci/engine/state.cpp +++ b/engines/sci/engine/state.cpp @@ -251,7 +251,7 @@ kLanguage SciEngine::getSciLanguage() { lang = K_LANG_ENGLISH; if (SELECTOR(printLang) != -1) { - lang = (kLanguage)readSelectorValue(_gamestate->_segMan, _gameObj, SELECTOR(printLang)); + lang = (kLanguage)readSelectorValue(_gamestate->_segMan, _gameObjectAddress, SELECTOR(printLang)); if ((getSciVersion() >= SCI_VERSION_1_1) || (lang == K_LANG_NONE)) { // If language is set to none, we use the language from the game detector. @@ -292,7 +292,7 @@ kLanguage SciEngine::getSciLanguage() { void SciEngine::setSciLanguage(kLanguage lang) { if (SELECTOR(printLang) != -1) - writeSelectorValue(_gamestate->_segMan, _gameObj, SELECTOR(printLang), lang); + writeSelectorValue(_gamestate->_segMan, _gameObjectAddress, SELECTOR(printLang), lang); } void SciEngine::setSciLanguage() { @@ -304,7 +304,7 @@ Common::String SciEngine::strSplit(const char *str, const char *sep) { kLanguage subLang = K_LANG_NONE; if (SELECTOR(subtitleLang) != -1) { - subLang = (kLanguage)readSelectorValue(_gamestate->_segMan, _gameObj, SELECTOR(subtitleLang)); + subLang = (kLanguage)readSelectorValue(_gamestate->_segMan, _gameObjectAddress, SELECTOR(subtitleLang)); } kLanguage secondLang; @@ -327,7 +327,7 @@ Common::String SciEngine::strSplit(const char *str, const char *sep) { void SciEngine::checkVocabularySwitch() { uint16 parserLanguage = 1; if (SELECTOR(parseLang) != -1) - parserLanguage = readSelectorValue(_gamestate->_segMan, _gameObj, SELECTOR(parseLang)); + parserLanguage = readSelectorValue(_gamestate->_segMan, _gameObjectAddress, SELECTOR(parseLang)); if (parserLanguage != _vocabularyLanguage) { delete _vocabulary; |