aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/bbvs/bbvs.cpp8
-rw-r--r--engines/bbvs/bbvs.h7
-rw-r--r--engines/bbvs/detection.cpp2
3 files changed, 16 insertions, 1 deletions
diff --git a/engines/bbvs/bbvs.cpp b/engines/bbvs/bbvs.cpp
index 11e4b6cea7..1d668f9c34 100644
--- a/engines/bbvs/bbvs.cpp
+++ b/engines/bbvs/bbvs.cpp
@@ -39,6 +39,8 @@
#include "common/error.h"
#include "common/fs.h"
#include "common/timer.h"
+#include "common/translation.h"
+#include "engines/advancedDetector.h"
#include "engines/util.h"
#include "graphics/cursorman.h"
#include "graphics/font.h"
@@ -116,9 +118,15 @@ BbvsEngine::BbvsEngine(OSystem *syst, const ADGameDescription *gd) :
Engine::syncSoundSettings();
+ _oldGUILanguage = TransMan.getCurrentLanguage();
+
+ if (gd->flags & GF_GUILANGSWITCH)
+ TransMan.setLanguage(getLanguageLocale(gd->language));
}
BbvsEngine::~BbvsEngine() {
+ if (TransMan.getCurrentLanguage() != _oldGUILanguage)
+ TransMan.setLanguage(_oldGUILanguage);
delete _random;
diff --git a/engines/bbvs/bbvs.h b/engines/bbvs/bbvs.h
index a2e08c84e8..d098aaf90b 100644
--- a/engines/bbvs/bbvs.h
+++ b/engines/bbvs/bbvs.h
@@ -63,6 +63,10 @@ class SoundMan;
#define BBVS_SAVEGAME_VERSION 0
enum {
+ GF_GUILANGSWITCH = (1 << 0) // If GUI language switch is required for menus
+};
+
+enum {
kVerbLook = 0,
kVerbUse = 1,
kVerbTalk = 2,
@@ -227,8 +231,11 @@ public:
void setNewSceneNum(int newSceneNum);
const Common::String getTargetName() { return _targetName; }
const ADGameDescription *_gameDescription;
+
private:
Graphics::PixelFormat _pixelFormat;
+ Common::String _oldGUILanguage;
+
public:
Common::RandomSource *_random;
diff --git a/engines/bbvs/detection.cpp b/engines/bbvs/detection.cpp
index b6f56893e3..5aad1136b3 100644
--- a/engines/bbvs/detection.cpp
+++ b/engines/bbvs/detection.cpp
@@ -52,7 +52,7 @@ static const ADGameDescription gameDescriptions[] = {
AD_ENTRY1s("vspr0001.vnm", "91c76b1048f93208cd7b1a05ebccb408", 1176976),
Common::RU_RUS,
Common::kPlatformWindows,
- ADGF_NO_FLAGS,
+ GF_GUILANGSWITCH,
GUIO0()
},