[Scummvm-git-logs] scummvm master -> cea00af6739553b3348c545912b4bfec16978057
peterkohaut
peterkohaut at users.noreply.github.com
Sun Mar 17 22:03:04 CET 2019
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
bba7ab786b BLADERUNNER: Fixed integer underflow for Russian videos
e7641d51b5 BLADERUNNER: Fixes for Russian version
cea00af673 BLADERUNNER: Fixed CDFRAMES.DAT switching
Commit: bba7ab786bd47d259dac5254c03b1b0f56a7e890
https://github.com/scummvm/scummvm/commit/bba7ab786bd47d259dac5254c03b1b0f56a7e890
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-03-17T22:01:16+01:00
Commit Message:
BLADERUNNER: Fixed integer underflow for Russian videos
Changed paths:
engines/bladerunner/vqa_decoder.cpp
diff --git a/engines/bladerunner/vqa_decoder.cpp b/engines/bladerunner/vqa_decoder.cpp
index 38d3fd4..ddd6c98 100644
--- a/engines/bladerunner/vqa_decoder.cpp
+++ b/engines/bladerunner/vqa_decoder.cpp
@@ -347,10 +347,12 @@ bool VQADecoder::readVQHD(Common::SeekableReadStream *s, uint32 size) {
bool VQADecoder::VQAVideoTrack::readVQFR(Common::SeekableReadStream *s, uint32 size, uint readFlags) {
IFFChunkHeader chd;
- while (size >= 8) {
+ signed int sizeLeft = size; // we have to use signed int to avoid underflow
+
+ while (sizeLeft >= 8) {
if (!readIFFChunkHeader(s, &chd))
return false;
- size -= roundup(chd.size) + 8;
+ sizeLeft -= roundup(chd.size) + 8;
bool rc = false;
switch (chd.id) {
@@ -663,10 +665,12 @@ void VQADecoder::VQAVideoTrack::decodeVideoFrame(Graphics::Surface *surface, boo
bool VQADecoder::VQAVideoTrack::readVQFL(Common::SeekableReadStream *s, uint32 size, uint readFlags) {
IFFChunkHeader chd;
- while (size >= 8) {
+ signed int sizeLeft = size; // we have to use signed int to avoid underflow
+
+ while (sizeLeft >= 8) {
if (!readIFFChunkHeader(s, &chd))
return false;
- size -= roundup(chd.size) + 8;
+ sizeLeft -= roundup(chd.size) + 8;
bool rc = false;
switch (chd.id) {
Commit: e7641d51b5ca6f46aa16105c31bd827ec72b3bf1
https://github.com/scummvm/scummvm/commit/e7641d51b5ca6f46aa16105c31bd827ec72b3bf1
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-03-17T22:01:16+01:00
Commit Message:
BLADERUNNER: Fixes for Russian version
Changed paths:
engines/bladerunner/bladerunner.cpp
engines/bladerunner/bladerunner.h
engines/bladerunner/debugger.cpp
engines/bladerunner/detection_tables.h
engines/bladerunner/script/ai/hanoi.cpp
engines/bladerunner/ui/esper.cpp
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 36292d0..ef91fd8 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -130,6 +130,7 @@ BladeRunnerEngine::BladeRunnerEngine(OSystem *syst, const ADGameDescription *des
_crimesDatabase = nullptr;
+ _language = desc->language;
switch (desc->language) {
case Common::EN_ANY:
_languageCode = "E";
@@ -144,7 +145,7 @@ BladeRunnerEngine::BladeRunnerEngine(OSystem *syst, const ADGameDescription *des
_languageCode = "I";
break;
case Common::RU_RUS:
- _languageCode = "R";
+ _languageCode = "E"; // Russian version is built on top of English one
break;
case Common::ES_ESP:
_languageCode = "S";
diff --git a/engines/bladerunner/bladerunner.h b/engines/bladerunner/bladerunner.h
index 438b34e..3154ff8 100644
--- a/engines/bladerunner/bladerunner.h
+++ b/engines/bladerunner/bladerunner.h
@@ -116,7 +116,9 @@ public:
bool _gameIsRunning;
bool _windowIsActive;
int _playerLosesControlCounter;
- Common::String _languageCode;
+
+ Common::String _languageCode;
+ Common::Language _language;
ActorDialogueQueue *_actorDialogueQueue;
ScreenEffects *_screenEffects;
diff --git a/engines/bladerunner/debugger.cpp b/engines/bladerunner/debugger.cpp
index 08c26e3..d0cfca8 100644
--- a/engines/bladerunner/debugger.cpp
+++ b/engines/bladerunner/debugger.cpp
@@ -130,7 +130,7 @@ bool Debugger::cmdAnimation(int argc, const char **argv) {
bool Debugger::cmdDraw(int argc, const char **argv) {
if (argc != 2) {
- debugPrintf("Enables debug rendering of actors, screen effect, fogs, lights, scene objects, obstacles, regsions, ui elements, walk boxes, waypoints, zbuffer or disables debug rendering.\n");
+ debugPrintf("Enables debug rendering of actors, screen effect, fogs, lights, scene objects, obstacles, regions, ui elements, walk boxes, waypoints, zbuffer or disables debug rendering.\n");
debugPrintf("Usage: %s (act | eff | fog | lit | obj | obstacles | reg | ui | walk | way | zbuf | reset)\n", argv[0]);
return true;
}
diff --git a/engines/bladerunner/detection_tables.h b/engines/bladerunner/detection_tables.h
index 5ee96c8..45a9b81 100644
--- a/engines/bladerunner/detection_tables.h
+++ b/engines/bladerunner/detection_tables.h
@@ -86,6 +86,18 @@ static const ADGameDescription gameDescriptions[] = {
GUIO2(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY)
},
+ // BladeRunner (Russian - alternate version)
+ {
+ "bladerunner",
+ 0,
+ AD_ENTRY1s("STARTUP.MIX", "bf42af841d9f4b643665013a348c81e0", 2483111),
+ Common::RU_RUS,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ GUIO2(GAMEOPTION_SITCOM, GAMEOPTION_SHORTY)
+ },
+
+
// BladeRunner (Spanish)
{
"bladerunner",
diff --git a/engines/bladerunner/script/ai/hanoi.cpp b/engines/bladerunner/script/ai/hanoi.cpp
index 56c39c2..87003f8 100644
--- a/engines/bladerunner/script/ai/hanoi.cpp
+++ b/engines/bladerunner/script/ai/hanoi.cpp
@@ -291,7 +291,7 @@ bool AIScriptHanoi::GoalChanged(int currentGoalNumber, int newGoalNumber) {
Game_Flag_Set(kFlagNR03McCoyThrownOut);
AI_Countdown_Timer_Reset(kActorHanoi, 0);
Player_Loses_Control();
- Player_Set_Combat_Mode(false);
+ Player_Set_Combat_Mode(false); // this is missing in ITA & SPA versions of the game
Actor_Force_Stop_Walking(kActorMcCoy);
Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie);
Actor_Set_Invisible(kActorMcCoy, true);
diff --git a/engines/bladerunner/ui/esper.cpp b/engines/bladerunner/ui/esper.cpp
index a5d858e..4fef77c 100644
--- a/engines/bladerunner/ui/esper.cpp
+++ b/engines/bladerunner/ui/esper.cpp
@@ -1019,9 +1019,15 @@ void ESPER::drawVideoFrame(Graphics::Surface &surface) {
}
void ESPER::drawTextCoords(Graphics::Surface &surface) {
- _vm->_mainFont->drawColor(Common::String::format("ZM %04.0f", _zoom / _zoomMin * 2.0f ), surface, 155, 364, 0x001F);
- _vm->_mainFont->drawColor(Common::String::format("NS %04d", 12 * _viewport.top + 98), surface, 260, 364, 0x001F);
- _vm->_mainFont->drawColor(Common::String::format("EW %04d", 12 * _viewport.left + 167), surface, 364, 364, 0x001F);
+ if (_vm->_language == Common::RU_RUS) {
+ _vm->_mainFont->drawColor(Common::String::format("gh %04.0f", _zoom / _zoomMin * 2.0f ), surface, 155, 364, 0x001F);
+ _vm->_mainFont->drawColor(Common::String::format("dh %04d", 12 * _viewport.top + 98), surface, 260, 364, 0x001F);
+ _vm->_mainFont->drawColor(Common::String::format("uh %04d", 12 * _viewport.left + 167), surface, 364, 364, 0x001F);
+ } else {
+ _vm->_mainFont->drawColor(Common::String::format("ZM %04.0f", _zoom / _zoomMin * 2.0f ), surface, 155, 364, 0x001F);
+ _vm->_mainFont->drawColor(Common::String::format("NS %04d", 12 * _viewport.top + 98), surface, 260, 364, 0x001F);
+ _vm->_mainFont->drawColor(Common::String::format("EW %04d", 12 * _viewport.left + 167), surface, 364, 364, 0x001F);
+ }
}
void ESPER::drawMouse(Graphics::Surface &surface) {
Commit: cea00af6739553b3348c545912b4bfec16978057
https://github.com/scummvm/scummvm/commit/cea00af6739553b3348c545912b4bfec16978057
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-03-17T22:01:16+01:00
Commit Message:
BLADERUNNER: Fixed CDFRAMES.DAT switching
Changed paths:
engines/bladerunner/slice_animations.cpp
diff --git a/engines/bladerunner/slice_animations.cpp b/engines/bladerunner/slice_animations.cpp
index 078d519..5db0806 100644
--- a/engines/bladerunner/slice_animations.cpp
+++ b/engines/bladerunner/slice_animations.cpp
@@ -112,6 +112,8 @@ bool SliceAnimations::openFrames(int fileNumber) {
_framesPageFile.close();
+ _framesPageFile._fileNumber = fileNumber;
+
if (fileNumber == 1 && _framesPageFile.open("CDFRAMES.DAT")) // For Chapter1 we try both CDFRAMES.DAT and CDFRAMES1.DAT
return true;
More information about the Scummvm-git-logs
mailing list