[Scummvm-git-logs] scummvm master -> c00d43685c19b732eb16a0515f73813100470c69
neuromancer
noreply at scummvm.org
Tue Jan 17 14:00:45 UTC 2023
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:
c00d43685c FREESCAPE: added version number information and a basic number check for freescape.dat
Commit: c00d43685c19b732eb16a0515f73813100470c69
https://github.com/scummvm/scummvm/commit/c00d43685c19b732eb16a0515f73813100470c69
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2023-01-17T15:00:17+01:00
Commit Message:
FREESCAPE: added version number information and a basic number check for freescape.dat
Changed paths:
A devtools/create_freescape/version
devtools/create_freescape/create_freescape.sh
dists/engine-data/freescape.dat
engines/freescape/freescape.cpp
diff --git a/devtools/create_freescape/create_freescape.sh b/devtools/create_freescape/create_freescape.sh
index ead6f8945cf..555690b765f 100755
--- a/devtools/create_freescape/create_freescape.sh
+++ b/devtools/create_freescape/create_freescape.sh
@@ -2,7 +2,7 @@
printf "Creating border/sounds file...\n"
-zip -r freescape.zip *.bmp *.wav
+zip -r freescape.zip version *.bmp *.wav
mv freescape.zip freescape.dat
echo done
diff --git a/devtools/create_freescape/version b/devtools/create_freescape/version
new file mode 100644
index 00000000000..56a6051ca2b
--- /dev/null
+++ b/devtools/create_freescape/version
@@ -0,0 +1 @@
+1
\ No newline at end of file
diff --git a/dists/engine-data/freescape.dat b/dists/engine-data/freescape.dat
index ff5b23c68dd..301c12a46c6 100644
Binary files a/dists/engine-data/freescape.dat and b/dists/engine-data/freescape.dat differ
diff --git a/engines/freescape/freescape.cpp b/engines/freescape/freescape.cpp
index bdb66beaf95..f9f95523c2d 100644
--- a/engines/freescape/freescape.cpp
+++ b/engines/freescape/freescape.cpp
@@ -756,6 +756,18 @@ void FreescapeEngine::loadDataBundle() {
if (!_dataBundle) {
error("ENGINE: Couldn't load data bundle '%s'.", FREESCAPE_DATA_BUNDLE.c_str());
}
+ Common::String versionFilename = "version";
+ if (!_dataBundle->hasFile(versionFilename))
+ error("No version number in %s", FREESCAPE_DATA_BUNDLE.c_str());
+
+ Common::SeekableReadStream *versionFile = _dataBundle->createReadStreamForMember(versionFilename);
+ char *versionData = (char *)malloc((versionFile->size() + 1) * sizeof(char));
+ versionFile->read(versionData, versionFile->size());
+ versionData[versionFile->size()] = '\0';
+ Common::String expectedVersion = "1";
+ if (versionData != expectedVersion)
+ error("Unexpected version number for freescape.dat: expecting '%s' but found '%s'", expectedVersion.c_str(), versionData);
+ free(versionData);
}
void FreescapeEngine::insertTemporaryMessage(const Common::String message, int deadline) {
More information about the Scummvm-git-logs
mailing list