[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