[Scummvm-git-logs] scummvm master -> 577a84a24cf6676c7c170e143b4d4933751b09ac
peterkohaut
peterkohaut at users.noreply.github.com
Thu Jul 4 00:10:06 CEST 2019
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:
577a84a24c BLADERUNNER: Explicit message about missing game files
Commit: 577a84a24cf6676c7c170e143b4d4933751b09ac
https://github.com/scummvm/scummvm/commit/577a84a24cf6676c7c170e143b4d4933751b09ac
Author: Peter Kohaut (peter.kohaut at gmail.com)
Date: 2019-07-04T00:09:47+02:00
Commit Message:
BLADERUNNER: Explicit message about missing game files
Changed paths:
engines/bladerunner/archive.cpp
engines/bladerunner/bladerunner.cpp
engines/bladerunner/bladerunner.h
engines/bladerunner/slice_animations.cpp
diff --git a/engines/bladerunner/archive.cpp b/engines/bladerunner/archive.cpp
index 8435a9d..0b2ac97 100644
--- a/engines/bladerunner/archive.cpp
+++ b/engines/bladerunner/archive.cpp
@@ -44,7 +44,7 @@ bool MIXArchive::exists(const Common::String &filename) {
bool MIXArchive::open(const Common::String &filename) {
if (!_fd.open(filename)) {
- warning("MIXArchive::open(): Can not open %s", filename.c_str());
+ error("MIXArchive::open(): Can not open %s", filename.c_str());
return false;
}
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 7362291..ecb4048 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -310,6 +310,20 @@ void BladeRunnerEngine::pauseEngineIntern(bool pause) {
}
Common::Error BladeRunnerEngine::run() {
+
+ Common::Array<Common::String> missingFiles;
+ if (!checkFiles(missingFiles)) {
+ Common::String missingFileStr = "";
+ for (uint i = 0; i < missingFiles.size(); ++i) {
+ if (i > 0) {
+ missingFileStr += ", ";
+ }
+ missingFileStr += missingFiles[i];
+ }
+
+ return Common::Error(Common::kNoGameDataFoundError, missingFileStr);
+ }
+
Graphics::PixelFormat format = screenPixelFormat();
initGraphics(640, 480, &format);
@@ -386,6 +400,53 @@ Common::Error BladeRunnerEngine::run() {
return Common::kNoError;
}
+bool BladeRunnerEngine::checkFiles(Common::Array<Common::String> &missingFiles) {
+ missingFiles.clear();
+
+ Common::Array<Common::String> requiredFiles;
+ requiredFiles.push_back("1.TLK");
+ requiredFiles.push_back("2.TLK");
+ requiredFiles.push_back("3.TLK");
+ requiredFiles.push_back("A.TLK");
+ requiredFiles.push_back("COREANIM.DAT");
+ requiredFiles.push_back("MODE.MIX");
+ requiredFiles.push_back("MUSIC.MIX");
+ requiredFiles.push_back("OUTTAKE1.MIX");
+ requiredFiles.push_back("OUTTAKE2.MIX");
+ requiredFiles.push_back("OUTTAKE3.MIX");
+ requiredFiles.push_back("OUTTAKE4.MIX");
+ requiredFiles.push_back("SFX.MIX");
+ requiredFiles.push_back("SPCHSFX.TLK");
+ requiredFiles.push_back("STARTUP.MIX");
+ requiredFiles.push_back("VQA1.MIX");
+ requiredFiles.push_back("VQA2.MIX");
+ requiredFiles.push_back("VQA3.MIX");
+
+ for (uint i = 0; i < requiredFiles.size(); ++i) {
+ if (!Common::File::exists(requiredFiles[i])) {
+ missingFiles.push_back(requiredFiles[i]);
+ }
+ }
+
+ bool hasHdFrames = Common::File::exists("HDFRAMES.DAT");
+
+ if (!hasHdFrames) {
+ requiredFiles.clear();
+ requiredFiles.push_back("CDFRAMES1.DAT");
+ requiredFiles.push_back("CDFRAMES2.DAT");
+ requiredFiles.push_back("CDFRAMES3.DAT");
+ requiredFiles.push_back("CDFRAMES4.DAT");
+
+ for (uint i = 0; i < requiredFiles.size(); ++i) {
+ if (!Common::File::exists(requiredFiles[i])) {
+ missingFiles.push_back(requiredFiles[i]);
+ }
+ }
+ }
+
+ return missingFiles.empty();
+}
+
bool BladeRunnerEngine::startup(bool hasSavegames) {
// These are static objects in original game
diff --git a/engines/bladerunner/bladerunner.h b/engines/bladerunner/bladerunner.h
index 2c1aec4..ceff3d7 100644
--- a/engines/bladerunner/bladerunner.h
+++ b/engines/bladerunner/bladerunner.h
@@ -251,6 +251,8 @@ public:
Common::Error run() override;
+ bool checkFiles(Common::Array<Common::String> &missingFiles);
+
bool startup(bool hasSavegames = false);
void initChapterAndScene();
void shutdown();
diff --git a/engines/bladerunner/slice_animations.cpp b/engines/bladerunner/slice_animations.cpp
index 553f153..55a3d13 100644
--- a/engines/bladerunner/slice_animations.cpp
+++ b/engines/bladerunner/slice_animations.cpp
@@ -111,7 +111,7 @@ bool SliceAnimations::openFrames(int fileNumber) {
return true;
} else {
- warning("SliceAnimations::openFrames: HDFRAMES.DAT resource not found. Falling back to using CDFRAMESx.DAT files instead...");
+ debug("SliceAnimations::openFrames: HDFRAMES.DAT resource not found. Falling back to using CDFRAMESx.DAT files instead...");
}
}
More information about the Scummvm-git-logs
mailing list