[Scummvm-git-logs] scummvm master -> 1eeafb4e30f9ccc92ece32b7078841ff94b3c7fb
peterkohaut
peterkohaut at users.noreply.github.com
Sun Jan 14 13:37:42 CET 2018
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
1eeafb4e30 BLADERUNNER: Support for different languages
Commit: 1eeafb4e30f9ccc92ece32b7078841ff94b3c7fb
https://github.com/scummvm/scummvm/commit/1eeafb4e30f9ccc92ece32b7078841ff94b3c7fb
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2018-01-14T13:36:55+01:00
Commit Message:
BLADERUNNER: Support for different languages
Added support for playing the game with different languages
Added Spanish language to detection tables
Changed paths:
engines/bladerunner/actor.cpp
engines/bladerunner/ambient_sounds.cpp
engines/bladerunner/bladerunner.cpp
engines/bladerunner/bladerunner.h
engines/bladerunner/detection.cpp
engines/bladerunner/detection_tables.h
engines/bladerunner/outtake.cpp
engines/bladerunner/text_resource.cpp
diff --git a/engines/bladerunner/actor.cpp b/engines/bladerunner/actor.cpp
index 3877947..3f66899 100644
--- a/engines/bladerunner/actor.cpp
+++ b/engines/bladerunner/actor.cpp
@@ -1052,7 +1052,7 @@ int Actor::getGoal() {
void Actor::speechPlay(int sentenceId, bool voiceOver) {
char name[13];
- sprintf(name, "%02d-%04d.AUD", _id, sentenceId); //TODO somewhere here should be also language code
+ sprintf(name, "%02d-%04d%s.AUD", _id, sentenceId, _vm->_languageCode);
int balance;
if (voiceOver || _id == VOICEOVER_ACTOR) {
diff --git a/engines/bladerunner/ambient_sounds.cpp b/engines/bladerunner/ambient_sounds.cpp
index 7790b03..a8a4253 100644
--- a/engines/bladerunner/ambient_sounds.cpp
+++ b/engines/bladerunner/ambient_sounds.cpp
@@ -107,7 +107,7 @@ void AmbientSounds::addSpeech(int actorId, int sentenceId, int timeMin, int time
sort(panEndMin, panEndMax);
char name[13];
- sprintf(name, "%02d-%04d.AUD", actorId, sentenceId); //TODO somewhere here should be also language code
+ sprintf(name, "%02d-%04d%s.AUD", actorId, sentenceId, _vm->_languageCode);
addSoundByName(name,
timeMin, timeMax,
volumeMin, volumeMax,
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 0c5dabe..653f159 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -69,12 +69,13 @@
#include "common/system.h"
#include "engines/util.h"
+#include "engines/advancedDetector.h"
#include "graphics/pixelformat.h"
namespace BladeRunner {
-BladeRunnerEngine::BladeRunnerEngine(OSystem *syst)
+BladeRunnerEngine::BladeRunnerEngine(OSystem *syst, const ADGameDescription *desc)
: Engine(syst),
_rnd("bladerunner") {
_windowIsActive = true;
@@ -104,6 +105,29 @@ BladeRunnerEngine::BladeRunnerEngine(OSystem *syst)
_walkSoundId = -1;
_walkSoundVolume = 0;
_walkSoundBalance = 0;
+
+ switch (desc->language) {
+ case Common::EN_ANY:
+ this->_languageCode = "E";
+ break;
+ case Common::DE_DEU:
+ this->_languageCode = "G";
+ break;
+ case Common::FR_FRA:
+ this->_languageCode = "F";
+ break;
+ case Common::IT_ITA:
+ this->_languageCode = "I";
+ break;
+ case Common::RU_RUS:
+ this->_languageCode = "R";
+ break;
+ case Common::ES_ESP:
+ this->_languageCode = "S";
+ break;
+ default:
+ this->_languageCode = "E";
+ }
}
BladeRunnerEngine::~BladeRunnerEngine() {
diff --git a/engines/bladerunner/bladerunner.h b/engines/bladerunner/bladerunner.h
index 7ed3fb4..3f158fb 100644
--- a/engines/bladerunner/bladerunner.h
+++ b/engines/bladerunner/bladerunner.h
@@ -37,6 +37,8 @@ namespace Common {
struct Event;
}
+struct ADGameDescription;
+
namespace BladeRunner {
enum AnimationModes {
@@ -101,6 +103,7 @@ public:
bool _gameIsRunning;
bool _windowIsActive;
int _playerLosesControlCounter;
+ char* _languageCode;
ADQ *_adq;
ScreenEffects *_screenEffects;
@@ -176,7 +179,7 @@ private:
MIXArchive _archives[kArchiveCount];
public:
- BladeRunnerEngine(OSystem *syst);
+ BladeRunnerEngine(OSystem *syst, const ADGameDescription *desc);
~BladeRunnerEngine();
bool hasFeature(EngineFeature f) const;
diff --git a/engines/bladerunner/detection.cpp b/engines/bladerunner/detection.cpp
index 1e40f3d..f2c691a 100644
--- a/engines/bladerunner/detection.cpp
+++ b/engines/bladerunner/detection.cpp
@@ -54,7 +54,7 @@ public:
bool BladeRunnerMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const
{
- *engine = new BladeRunner::BladeRunnerEngine(syst);
+ *engine = new BladeRunner::BladeRunnerEngine(syst, desc);
return true;
}
diff --git a/engines/bladerunner/detection_tables.h b/engines/bladerunner/detection_tables.h
index 9886f78..5262789 100644
--- a/engines/bladerunner/detection_tables.h
+++ b/engines/bladerunner/detection_tables.h
@@ -96,6 +96,20 @@ static const ADGameDescription gameDescriptions[] = {
GUIO0()
},
+ // BladeRunner (Spanish)
+ {
+ "bladerunner",
+ 0,
+ {
+ {"STARTUP.MIX", 0, "54cad53da9e4ae03a85648834ac6765d", 2312976},
+ AD_LISTEND
+ },
+ Common::ES_ESP,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ GUIO0()
+ },
+
AD_TABLE_END_MARKER
};
diff --git a/engines/bladerunner/outtake.cpp b/engines/bladerunner/outtake.cpp
index d600790..4791259 100644
--- a/engines/bladerunner/outtake.cpp
+++ b/engines/bladerunner/outtake.cpp
@@ -37,11 +37,12 @@ void OuttakePlayer::play(const Common::String &name, bool noLocalization, int co
return;
}
- Common::String resName;
- if (noLocalization)
- resName = name + ".VQA";
- else
- resName = name + "_E.VQA";
+ Common::String resName = name;
+ if (!noLocalization) {
+ resName = resName + "_" + _vm->_languageCode;
+ }
+
+ resName = resName + ".VQA";
VQAPlayer vqa_player(_vm, &_vm->_surfaceGame);
diff --git a/engines/bladerunner/text_resource.cpp b/engines/bladerunner/text_resource.cpp
index 03460d0..78a73f5 100644
--- a/engines/bladerunner/text_resource.cpp
+++ b/engines/bladerunner/text_resource.cpp
@@ -47,7 +47,7 @@ bool TextResource::open(const char *name) {
assert(strlen(name) <= 8);
char resName[13];
- sprintf(resName, "%s.TRE", name);
+ sprintf(resName, "%s.TR%s", name, _vm->_languageCode);
Common::ScopedPtr<Common::SeekableReadStream> s(_vm->getResourceStream(resName));
if (!s)
return false;
More information about the Scummvm-git-logs
mailing list