[Scummvm-git-logs] scummvm master -> 932d4b278eb1fab29cc4783dcb3a688a104cadd2

yuv422 noreply at scummvm.org
Sun Jan 5 23:03:02 UTC 2025


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:
932d4b278e DARKSEED: Add big5 font data bundle


Commit: 932d4b278eb1fab29cc4783dcb3a688a104cadd2
    https://github.com/scummvm/scummvm/commit/932d4b278eb1fab29cc4783dcb3a688a104cadd2
Author: Eric Fry (yuv422 at reversedgames.com)
Date: 2025-01-05T16:00:37-07:00

Commit Message:
DARKSEED: Add big5 font data bundle

Changed paths:
  A dists/engine-data/darkseed.dat
    dists/engine-data/README
    dists/engine-data/engine_data.mk
    engines/darkseed/POTFILES
    engines/darkseed/big5font.cpp
    engines/darkseed/darkseed.cpp


diff --git a/dists/engine-data/README b/dists/engine-data/README
index a5ccf782a17..c3f0b8d7529 100644
--- a/dists/engine-data/README
+++ b/dists/engine-data/README
@@ -24,6 +24,9 @@ This file contains all strings and some file names depending only on platform/lo
 Some filenames depend on the edition, these are handled by game flags in engine code.
 Those informations were stored in the original executables.
 
+darkseed.dat:
+This file contains essential game data used by the Darkseed engine.
+
 drascula.dat:
 This file contains essential game data used by the Drascula engine.
 
diff --git a/dists/engine-data/darkseed.dat b/dists/engine-data/darkseed.dat
new file mode 100644
index 00000000000..bc842365dfc
Binary files /dev/null and b/dists/engine-data/darkseed.dat differ
diff --git a/dists/engine-data/engine_data.mk b/dists/engine-data/engine_data.mk
index 50c6e6f8409..d770afdc1cd 100644
--- a/dists/engine-data/engine_data.mk
+++ b/dists/engine-data/engine_data.mk
@@ -10,6 +10,9 @@ endif
 ifdef ENABLE_CRYOMNI3D
 DIST_FILES_LIST += dists/engine-data/cryomni3d.dat
 endif
+ifdef ENABLE_DARKSEED
+DIST_FILES_LIST += dists/engine-data/darkseed.dat
+endif
 ifdef ENABLE_DRASCULA
 DIST_FILES_LIST += dists/engine-data/drascula.dat
 endif
diff --git a/engines/darkseed/POTFILES b/engines/darkseed/POTFILES
index a6633d68eee..11435c00a8b 100644
--- a/engines/darkseed/POTFILES
+++ b/engines/darkseed/POTFILES
@@ -1 +1,2 @@
+engines/darkseed/darkseed.cpp
 engines/darkseed/metaengine.cpp
diff --git a/engines/darkseed/big5font.cpp b/engines/darkseed/big5font.cpp
index 4536c8395ad..a859b1e38bc 100644
--- a/engines/darkseed/big5font.cpp
+++ b/engines/darkseed/big5font.cpp
@@ -25,13 +25,12 @@
 namespace Darkseed {
 
 Big5Font::Big5Font() {
-	Common::File tosFile;
-	if (!tosFile.open("tos.exe")) { // TODO handle packed tos.exe
-		error("Error: failed to open tos.exe");
+	Common::File fontData;
+	if (!fontData.open("big5font_game.dat")) {
+		error("Error: failed to open big5font_game.dat");
 	}
-	tosFile.seek(0x2701);
-	_big5.loadPrefixedRaw(tosFile, 15);
-	tosFile.close();
+	_big5.loadPrefixedRaw(fontData, 15);
+	fontData.close();
 }
 
 int Big5Font::getFontHeight() const {
diff --git a/engines/darkseed/darkseed.cpp b/engines/darkseed/darkseed.cpp
index c24e693865f..4c90290dde7 100644
--- a/engines/darkseed/darkseed.cpp
+++ b/engines/darkseed/darkseed.cpp
@@ -24,6 +24,8 @@
 #include "common/events.h"
 #include "common/scummsys.h"
 #include "common/system.h"
+#include "common/compression/unzip.h"
+#include "common/translation.h"
 #include "engines/util.h"
 #include "darkseed/darkseed.h"
 #include "darkseed/console.h"
@@ -57,6 +59,15 @@ Common::String DarkseedEngine::getGameId() const {
 }
 
 Common::Error DarkseedEngine::run() {
+	// Initialise engine data for the game
+	if (getLanguage() == Common::ZH_ANY) { // currently only the Chinese version requires external bundled data.
+		Common::Archive *archive = Common::makeZipArchive("darkseed.dat");
+		if (!archive) {
+			GUIErrorMessage(_("Unable to locate the darkseed.dat engine data file."));
+			return Common::kPathDoesNotExist;
+		}
+		SearchMan.add("darkseed.dat", archive);
+	}
 	initGraphics(640, 350);
 	_canSaveGame = false;
 	_sound = new Sound(_mixer);




More information about the Scummvm-git-logs mailing list