[Scummvm-git-logs] scummvm master -> 7bbe0f530d32e8504aa03b6c4970da12a4708ea8
mduggan
noreply at scummvm.org
Mon Mar 13 09:14:52 UTC 2023
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
31aeb928fc TETRAEDGE: Fix coverity-identified potential null pointer
7bbe0f530d TETRAEDGE: Add ability to pick different languages
Commit: 31aeb928fcc4064f6c2756cedc6a14a3a152c24a
https://github.com/scummvm/scummvm/commit/31aeb928fcc4064f6c2756cedc6a14a3a152c24a
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2023-03-13T17:26:35+09:00
Commit Message:
TETRAEDGE: Fix coverity-identified potential null pointer
Changed paths:
engines/tetraedge/game/credits.cpp
diff --git a/engines/tetraedge/game/credits.cpp b/engines/tetraedge/game/credits.cpp
index c7dd4209830..c090925713d 100644
--- a/engines/tetraedge/game/credits.cpp
+++ b/engines/tetraedge/game/credits.cpp
@@ -117,7 +117,7 @@ void Credits::enter(bool returnToOptions) {
_curveAnim._callbackObj = foreground;
_curveAnim._callbackMethod = &TeLayout::setColor;
_curveAnim.play();
- _gui.buttonLayout("quitButton")->onMouseClickValidated().add(this, &Credits::onQuitButton);
+ _gui.buttonLayoutChecked("quitButton")->onMouseClickValidated().add(this, &Credits::onQuitButton);
//
// WORKAROUND: These are set to PanScan ratio 1.0, but with our code
Commit: 7bbe0f530d32e8504aa03b6c4970da12a4708ea8
https://github.com/scummvm/scummvm/commit/7bbe0f530d32e8504aa03b6c4970da12a4708ea8
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2023-03-13T18:14:37+09:00
Commit Message:
TETRAEDGE: Add ability to pick different languages
Changed paths:
engines/tetraedge/detection.cpp
engines/tetraedge/detection.h
engines/tetraedge/detection_tables.h
engines/tetraedge/metaengine.cpp
engines/tetraedge/metaengine.h
engines/tetraedge/te/te_core.cpp
engines/tetraedge/tetraedge.cpp
engines/tetraedge/tetraedge.h
diff --git a/engines/tetraedge/detection.cpp b/engines/tetraedge/detection.cpp
index d5ec376df17..dc84cff8b08 100644
--- a/engines/tetraedge/detection.cpp
+++ b/engines/tetraedge/detection.cpp
@@ -37,4 +37,25 @@ TetraedgeMetaEngineDetection::TetraedgeMetaEngineDetection() : AdvancedMetaEngin
_flags = kADFlagMatchFullPaths;
}
+
+DetectedGame TetraedgeMetaEngineDetection::toDetectedGame(const ADDetectedGame &adGame, ADDetectedGameExtraInfo *extraInfo) const {
+ DetectedGame game = AdvancedMetaEngineDetection::toDetectedGame(adGame);
+
+ // The AdvancedDetector model only allows specifying a single supported
+ // game language. Both games support multiple languages
+ if (game.gameId == "syberia" || game.gameId == "syberia2") {
+ const Common::Language *language = TetraedgeMetaEngine::getGameLanguages();
+ while (*language != Common::UNK_LANG) {
+ // "ru" only present on syberia 1
+ if (game.gameId == "syberia2" && *language == Common::RU_RUS)
+ continue;
+ game.appendGUIOptions(Common::getGameGUIOptionsDescriptionLanguage(*language));
+ language++;
+ }
+ }
+
+ return game;
+}
+
+
REGISTER_PLUGIN_STATIC(TETRAEDGE_DETECTION, PLUGIN_TYPE_ENGINE_DETECTION, TetraedgeMetaEngineDetection);
diff --git a/engines/tetraedge/detection.h b/engines/tetraedge/detection.h
index e6efa6712cd..f1fae7a47b5 100644
--- a/engines/tetraedge/detection.h
+++ b/engines/tetraedge/detection.h
@@ -47,6 +47,8 @@ public:
TetraedgeMetaEngineDetection();
~TetraedgeMetaEngineDetection() override {}
+ DetectedGame toDetectedGame(const ADDetectedGame &adGame, ADDetectedGameExtraInfo *extraInfo) const override;
+
const char *getEngineName() const override {
return "Tetraedge Engine";
}
diff --git a/engines/tetraedge/detection_tables.h b/engines/tetraedge/detection_tables.h
index af4a1070f2a..65633e18902 100644
--- a/engines/tetraedge/detection_tables.h
+++ b/engines/tetraedge/detection_tables.h
@@ -36,7 +36,7 @@ const ADGameDescription GAME_DESCRIPTIONS[] = {
"syberia",
nullptr,
AD_ENTRY1s("MacOS/Syberia", "d:6951fb8f71fe06f34684564625f73cd8", 10640592),
- Common::EN_ANY,
+ Common::UNK_LANG,
Common::kPlatformMacintosh,
ADGF_TESTING,
GUIO1(GAMEOPTION_CORRECT_MOVIE_ASPECT)
@@ -47,7 +47,7 @@ const ADGameDescription GAME_DESCRIPTIONS[] = {
"syberia2",
nullptr,
AD_ENTRY1s("MacOS/Syberia 2", "d:c447586a3cb3d46d6127b467e7fb9a86", 12021136),
- Common::EN_ANY,
+ Common::UNK_LANG,
Common::kPlatformMacintosh,
ADGF_TESTING,
GUIO1(GAMEOPTION_CORRECT_MOVIE_ASPECT)
diff --git a/engines/tetraedge/metaengine.cpp b/engines/tetraedge/metaengine.cpp
index eea67eb4513..7da1056f34a 100644
--- a/engines/tetraedge/metaengine.cpp
+++ b/engines/tetraedge/metaengine.cpp
@@ -65,6 +65,20 @@ bool TetraedgeMetaEngine::hasFeature(MetaEngineFeature f) const {
(f == kSupportsLoadingDuringStartup);
}
+/*static*/
+const Common::Language *TetraedgeMetaEngine::getGameLanguages() {
+ static Common::Language languages[] = {
+ Common::EN_ANY,
+ Common::FR_FRA,
+ Common::DE_DEU,
+ Common::IT_ITA,
+ Common::ES_ESP,
+ Common::RU_RUS,
+ Common::UNK_LANG
+ };
+ return languages;
+}
+
void TetraedgeMetaEngine::getSavegameThumbnail(Graphics::Surface &thumb) {
Tetraedge::TetraedgeEngine::getSavegameThumbnail(thumb);
}
diff --git a/engines/tetraedge/metaengine.h b/engines/tetraedge/metaengine.h
index 15887127977..8ebb6556d80 100644
--- a/engines/tetraedge/metaengine.h
+++ b/engines/tetraedge/metaengine.h
@@ -43,6 +43,9 @@ public:
* Used by e.g. the launcher to determine whether to enable the Load button.
*/
bool hasFeature(MetaEngineFeature f) const override;
+
+ static const Common::Language *getGameLanguages();
+
};
#endif
diff --git a/engines/tetraedge/te/te_core.cpp b/engines/tetraedge/te/te_core.cpp
index c67f7893543..ac4e41525a1 100644
--- a/engines/tetraedge/te/te_core.cpp
+++ b/engines/tetraedge/te/te_core.cpp
@@ -23,9 +23,12 @@
#include "common/fs.h"
#include "common/debug.h"
#include "common/config-manager.h"
+#include "common/language.h"
#include "tetraedge/te/te_core.h"
+#include "tetraedge/tetraedge.h"
+
#include "tetraedge/te/te_png.h"
#include "tetraedge/te/te_images_sequence.h"
#include "tetraedge/te/te_jpeg.h"
@@ -46,8 +49,14 @@ void TeCore::addLoc(TeILoc *loc) {
}
void TeCore::create() {
- // TODO: Get language from the game definition. For now just default to en.
- language("en");
+ const char *langCode = getLanguageCode(g_engine->getGameLanguage());
+ const Common::String confLang = ConfMan.get("language");
+ Common::String useLang = "en";
+ if (langCode)
+ useLang = langCode;
+ if (!confLang.empty())
+ useLang = confLang;
+ language(useLang);
_coreNotReady = false;
_activityTrackingTimer.alarmSignal().add(this, &TeCore::onActivityTrackingAlarm);
warning("TODO: TeCore::create: Finish implementing me.");
diff --git a/engines/tetraedge/tetraedge.cpp b/engines/tetraedge/tetraedge.cpp
index 2e66a765e87..3233689f672 100644
--- a/engines/tetraedge/tetraedge.cpp
+++ b/engines/tetraedge/tetraedge.cpp
@@ -134,6 +134,10 @@ Common::String TetraedgeEngine::getGameId() const {
return _gameDescription->gameId;
}
+Common::Language TetraedgeEngine::getGameLanguage() const {
+ return _gameDescription->language;
+}
+
bool TetraedgeEngine::canLoadGameStateCurrently() {
return _game && _application && !_application->mainMenu().isEntered();
}
@@ -208,6 +212,7 @@ void TetraedgeEngine::registerConfigDefaults() {
ConfMan.registerDefault("correct_movie_aspect", true);
}
+
Common::Error TetraedgeEngine::run() {
if (getGameId() == "syberia")
_gameType = kSyberia;
@@ -316,4 +321,5 @@ void TetraedgeEngine::getSavegameThumbnail(Graphics::Surface &thumb) {
g_engine->getApplication()->getSavegameThumbnail(thumb);
}
+
} // namespace Tetraedge
diff --git a/engines/tetraedge/tetraedge.h b/engines/tetraedge/tetraedge.h
index 6492b96c0db..8adafa938c4 100644
--- a/engines/tetraedge/tetraedge.h
+++ b/engines/tetraedge/tetraedge.h
@@ -86,6 +86,8 @@ public:
*/
Common::String getGameId() const;
+ Common::Language getGameLanguage() const;
+
/**
* Gets a random number
*/
More information about the Scummvm-git-logs
mailing list