[Scummvm-git-logs] scummvm master -> 16af74a40e7e439839008ebb5d0fd353651d0dfb

sev- noreply at scummvm.org
Mon Aug 28 19:51:21 UTC 2023


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
a7c8056d73 ULTIMA: Split Ultima 8 resources into a separate archive
16af74a40e ULTIMA: Regenerate ultima8.dat


Commit: a7c8056d73accac3fa457cf6fc8374b144f7eca9
    https://github.com/scummvm/scummvm/commit/a7c8056d73accac3fa457cf6fc8374b144f7eca9
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2023-08-28T21:51:17+02:00

Commit Message:
ULTIMA: Split Ultima 8 resources into a separate archive

Changed paths:
  A devtools/create_ultima8/Vera.ttf
  A devtools/create_ultima8/VeraBd.ttf
  A devtools/create_ultima8/Vera_copyright.txt
  A devtools/create_ultima8/pentagram.png
  A devtools/create_ultima8/regretweapons.ini
  A devtools/create_ultima8/remorse.ini
  A devtools/create_ultima8/remorsebindings.ini
  A devtools/create_ultima8/remorseweapons.ini
  A devtools/create_ultima8/u8.ini
  A devtools/create_ultima8/u8armour.ini
  A devtools/create_ultima8/u8english.ini
  A devtools/create_ultima8/u8french.ini
  A devtools/create_ultima8/u8german.ini
  A devtools/create_ultima8/u8japanese.ini
  A devtools/create_ultima8/u8monsters.ini
  A devtools/create_ultima8/u8spanish.ini
  A devtools/create_ultima8/u8weapons.ini
  R devtools/create_ultima/files/ultima8/Vera.ttf
  R devtools/create_ultima/files/ultima8/VeraBd.ttf
  R devtools/create_ultima/files/ultima8/Vera_copyright.txt
  R devtools/create_ultima/files/ultima8/pentagram.png
  R devtools/create_ultima/files/ultima8/regretweapons.ini
  R devtools/create_ultima/files/ultima8/remorse.ini
  R devtools/create_ultima/files/ultima8/remorsebindings.ini
  R devtools/create_ultima/files/ultima8/remorseweapons.ini
  R devtools/create_ultima/files/ultima8/u8.ini
  R devtools/create_ultima/files/ultima8/u8armour.ini
  R devtools/create_ultima/files/ultima8/u8english.ini
  R devtools/create_ultima/files/ultima8/u8french.ini
  R devtools/create_ultima/files/ultima8/u8german.ini
  R devtools/create_ultima/files/ultima8/u8japanese.ini
  R devtools/create_ultima/files/ultima8/u8monsters.ini
  R devtools/create_ultima/files/ultima8/u8spanish.ini
  R devtools/create_ultima/files/ultima8/u8weapons.ini
  R devtools/create_ultima/files/ultima8/version.txt
    Makefile.common
    devtools/create_project/xcode.cpp
    devtools/release-checks.sh
    dists/engine-data/README
    dists/irix/scummvm.idb
    dists/scummvm.rc
    dists/win32/migration.txt
    engines/ultima/ultima8/games/game_data.cpp
    engines/ultima/ultima8/graphics/fonts/font_manager.cpp
    engines/ultima/ultima8/ultima8.cpp
    engines/ultima/ultima8/ultima8.h


diff --git a/Makefile.common b/Makefile.common
index ec80865d1c9..db52cf2f63b 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -468,7 +468,7 @@ ifdef ENABLE_TOON
 DIST_FILES_ENGINEDATA+=toon.dat
 endif
 ifdef ENABLE_ULTIMA
-DIST_FILES_ENGINEDATA+=ultima.dat
+DIST_FILES_ENGINEDATA+=ultima.dat ultima8.dat
 endif
 ifdef ENABLE_WINTERMUTE
 DIST_FILES_ENGINEDATA+=wintermute.zip
diff --git a/devtools/create_project/xcode.cpp b/devtools/create_project/xcode.cpp
index d8c540ccd56..783f035a584 100644
--- a/devtools/create_project/xcode.cpp
+++ b/devtools/create_project/xcode.cpp
@@ -1052,6 +1052,7 @@ XcodeProvider::ValueList& XcodeProvider::getResourceFiles(const BuildSetup &setu
 		files.push_back("dists/engine-data/tony.dat");
 		files.push_back("dists/engine-data/toon.dat");
 		files.push_back("dists/engine-data/ultima.dat");
+		files.push_back("dists/engine-data/ultima8.dat");
 		files.push_back("dists/engine-data/wintermute.zip");
 		files.push_back("dists/ios7/LaunchScreen_ios.storyboard");
 		files.push_back("dists/tvos/LaunchScreen_tvos.storyboard");
diff --git a/devtools/create_ultima/files/ultima8/version.txt b/devtools/create_ultima/files/ultima8/version.txt
deleted file mode 100644
index cd5ac039d67..00000000000
--- a/devtools/create_ultima/files/ultima8/version.txt
+++ /dev/null
@@ -1 +0,0 @@
-2.0
diff --git a/devtools/create_ultima/files/ultima8/Vera.ttf b/devtools/create_ultima8/Vera.ttf
similarity index 100%
rename from devtools/create_ultima/files/ultima8/Vera.ttf
rename to devtools/create_ultima8/Vera.ttf
diff --git a/devtools/create_ultima/files/ultima8/VeraBd.ttf b/devtools/create_ultima8/VeraBd.ttf
similarity index 100%
rename from devtools/create_ultima/files/ultima8/VeraBd.ttf
rename to devtools/create_ultima8/VeraBd.ttf
diff --git a/devtools/create_ultima/files/ultima8/Vera_copyright.txt b/devtools/create_ultima8/Vera_copyright.txt
similarity index 100%
rename from devtools/create_ultima/files/ultima8/Vera_copyright.txt
rename to devtools/create_ultima8/Vera_copyright.txt
diff --git a/devtools/create_ultima/files/ultima8/pentagram.png b/devtools/create_ultima8/pentagram.png
similarity index 100%
rename from devtools/create_ultima/files/ultima8/pentagram.png
rename to devtools/create_ultima8/pentagram.png
diff --git a/devtools/create_ultima/files/ultima8/regretweapons.ini b/devtools/create_ultima8/regretweapons.ini
similarity index 100%
rename from devtools/create_ultima/files/ultima8/regretweapons.ini
rename to devtools/create_ultima8/regretweapons.ini
diff --git a/devtools/create_ultima/files/ultima8/remorse.ini b/devtools/create_ultima8/remorse.ini
similarity index 100%
rename from devtools/create_ultima/files/ultima8/remorse.ini
rename to devtools/create_ultima8/remorse.ini
diff --git a/devtools/create_ultima/files/ultima8/remorsebindings.ini b/devtools/create_ultima8/remorsebindings.ini
similarity index 100%
rename from devtools/create_ultima/files/ultima8/remorsebindings.ini
rename to devtools/create_ultima8/remorsebindings.ini
diff --git a/devtools/create_ultima/files/ultima8/remorseweapons.ini b/devtools/create_ultima8/remorseweapons.ini
similarity index 100%
rename from devtools/create_ultima/files/ultima8/remorseweapons.ini
rename to devtools/create_ultima8/remorseweapons.ini
diff --git a/devtools/create_ultima/files/ultima8/u8.ini b/devtools/create_ultima8/u8.ini
similarity index 100%
rename from devtools/create_ultima/files/ultima8/u8.ini
rename to devtools/create_ultima8/u8.ini
diff --git a/devtools/create_ultima/files/ultima8/u8armour.ini b/devtools/create_ultima8/u8armour.ini
similarity index 100%
rename from devtools/create_ultima/files/ultima8/u8armour.ini
rename to devtools/create_ultima8/u8armour.ini
diff --git a/devtools/create_ultima/files/ultima8/u8english.ini b/devtools/create_ultima8/u8english.ini
similarity index 100%
rename from devtools/create_ultima/files/ultima8/u8english.ini
rename to devtools/create_ultima8/u8english.ini
diff --git a/devtools/create_ultima/files/ultima8/u8french.ini b/devtools/create_ultima8/u8french.ini
similarity index 100%
rename from devtools/create_ultima/files/ultima8/u8french.ini
rename to devtools/create_ultima8/u8french.ini
diff --git a/devtools/create_ultima/files/ultima8/u8german.ini b/devtools/create_ultima8/u8german.ini
similarity index 100%
rename from devtools/create_ultima/files/ultima8/u8german.ini
rename to devtools/create_ultima8/u8german.ini
diff --git a/devtools/create_ultima/files/ultima8/u8japanese.ini b/devtools/create_ultima8/u8japanese.ini
similarity index 100%
rename from devtools/create_ultima/files/ultima8/u8japanese.ini
rename to devtools/create_ultima8/u8japanese.ini
diff --git a/devtools/create_ultima/files/ultima8/u8monsters.ini b/devtools/create_ultima8/u8monsters.ini
similarity index 100%
rename from devtools/create_ultima/files/ultima8/u8monsters.ini
rename to devtools/create_ultima8/u8monsters.ini
diff --git a/devtools/create_ultima/files/ultima8/u8spanish.ini b/devtools/create_ultima8/u8spanish.ini
similarity index 100%
rename from devtools/create_ultima/files/ultima8/u8spanish.ini
rename to devtools/create_ultima8/u8spanish.ini
diff --git a/devtools/create_ultima/files/ultima8/u8weapons.ini b/devtools/create_ultima8/u8weapons.ini
similarity index 100%
rename from devtools/create_ultima/files/ultima8/u8weapons.ini
rename to devtools/create_ultima8/u8weapons.ini
diff --git a/devtools/release-checks.sh b/devtools/release-checks.sh
index b7e083e8e06..a02bb3f8883 100755
--- a/devtools/release-checks.sh
+++ b/devtools/release-checks.sh
@@ -441,6 +441,26 @@ fi
 
 
 
+###########
+# Ultima 8 engine
+###########
+
+echo_n "Checking ultima8.dat..."
+
+fileDate=`git log -1 dists/engine-data/ultima8.dat | grep Date | sed 's/Date: //'`
+
+num_lines=`git -P log --oneline "--since=$fileDate" devtools/create_ultima8 | wc -l`
+
+if [ "$num_lines" -ne "0" ]; then
+  echo -e "$num_lines unprocessed commits. ${RED}Run 'cd devtools/create_ultima8; zip -r9 ../../../dists/engine-data/ultima8.dat .'${NC}"
+
+  failPlus
+else
+  echoOk
+fi
+
+
+
 ###########
 # Totals
 ###########
diff --git a/dists/engine-data/README b/dists/engine-data/README
index f1cda5aa572..4d3927c5591 100644
--- a/dists/engine-data/README
+++ b/dists/engine-data/README
@@ -110,6 +110,9 @@ This file contains all the strings hardcoded in the original executables.
 ultima.dat:
 This file contains scripts and game data used by the Ultima engine.
 
+ultima8.dat:
+This file contains scripts and game data used by the Ultima 8 engine.
+
 wintermute.zip:
 This file contains additional graphics resources used by the Wintermute engine.
 
diff --git a/dists/irix/scummvm.idb b/dists/irix/scummvm.idb
index 4b36e474426..f5cafd0f570 100644
--- a/dists/irix/scummvm.idb
+++ b/dists/irix/scummvm.idb
@@ -44,6 +44,7 @@ f 0644 root sys usr/ScummVM/share/scummvm/titanic.dat titanic.dat scummvm.sw.eoe
 f 0644 root sys usr/ScummVM/share/scummvm/tony.dat tony.dat scummvm.sw.eoe
 f 0644 root sys usr/ScummVM/share/scummvm/toon.dat toon.dat scummvm.sw.eoe
 f 0644 root sys usr/ScummVM/share/scummvm/ultima.dat ultima.dat scummvm.sw.eoe
+f 0644 root sys usr/ScummVM/share/scummvm/ultima8.dat ultima8.dat scummvm.sw.eoe
 f 0644 root sys usr/ScummVM/share/scummvm/freescape.dat freescape.dat scummvm.sw.eoe
 f 0644 root sys usr/ScummVM/share/scummvm/wintermute.zip wintermute.zip scummvm.sw.eoe
 f 0644 root sys usr/ScummVM/share/scummvm/mm.dat mm.dat scummvm.sw.eoe
diff --git a/dists/scummvm.rc b/dists/scummvm.rc
index 11456bb1c1a..0ac7dccec90 100644
--- a/dists/scummvm.rc
+++ b/dists/scummvm.rc
@@ -115,6 +115,7 @@ toon.dat               FILE    "dists/engine-data/toon.dat"
 #endif
 #if PLUGIN_ENABLED_STATIC(ULTIMA)
 ultima.dat             FILE    "dists/engine-data/ultima.dat"
+ultima8.dat            FILE    "dists/engine-data/ultima8.dat"
 #endif
 #if PLUGIN_ENABLED_STATIC(WINTERMUTE)
 wintermute.zip         FILE    "dists/engine-data/wintermute.zip"
diff --git a/dists/win32/migration.txt b/dists/win32/migration.txt
index 6afece766d7..2dbed856508 100644
--- a/dists/win32/migration.txt
+++ b/dists/win32/migration.txt
@@ -59,6 +59,7 @@ toon.dat
 tony.dat
 translations.dat
 ultima.dat
+ultima8.dat
 wintermute.zip
 unins000.dat
 unins000.exe
diff --git a/engines/ultima/ultima8/games/game_data.cpp b/engines/ultima/ultima8/games/game_data.cpp
index de949e79819..6729929ec28 100644
--- a/engines/ultima/ultima8/games/game_data.cpp
+++ b/engines/ultima/ultima8/games/game_data.cpp
@@ -171,8 +171,6 @@ void GameData::loadTranslation() {
 	}
 
 	if (!translationfile.empty()) {
-		translationfile = "data/" + translationfile;
-
 		debug(MM_INFO, "Loading translation: %s", translationfile.c_str());
 
 		config->readConfigFile(translationfile, "language");
@@ -263,10 +261,10 @@ void GameData::loadU8Data() {
 
 	// Load weapon, armour info
 	ConfigFileManager *config = ConfigFileManager::get_instance();
-	config->readConfigFile("data/u8weapons.ini", "weapons");
-	config->readConfigFile("data/u8armour.ini", "armour");
-	config->readConfigFile("data/u8monsters.ini", "monsters");
-	config->readConfigFile("data/u8.ini", "game");
+	config->readConfigFile("u8weapons.ini", "weapons");
+	config->readConfigFile("u8armour.ini", "armour");
+	config->readConfigFile("u8monsters.ini", "monsters");
+	config->readConfigFile("u8.ini", "game");
 
 	// Load typeflags
 	Common::SeekableReadStream *tfs = filesystem->ReadFile("static/typeflag.dat");
@@ -540,11 +538,11 @@ void GameData::loadRemorseData() {
 	ConfigFileManager *config = ConfigFileManager::get_instance();
 	// Load weapon, armour info
 	if (_gameInfo->_type == GameInfo::GAME_REMORSE)
-		config->readConfigFile("data/remorseweapons.ini", "weapons");
+		config->readConfigFile("remorseweapons.ini", "weapons");
 	else
-		config->readConfigFile("data/regretweapons.ini", "weapons");
+		config->readConfigFile("regretweapons.ini", "weapons");
 
-	config->readConfigFile("data/remorse.ini", "game");
+	config->readConfigFile("remorse.ini", "game");
 
 	// Load typeflags
 	Common::SeekableReadStream *tfs = filesystem->ReadFile("static/typeflag.dat");
diff --git a/engines/ultima/ultima8/graphics/fonts/font_manager.cpp b/engines/ultima/ultima8/graphics/fonts/font_manager.cpp
index 8092eb47e35..b21101fc704 100644
--- a/engines/ultima/ultima8/graphics/fonts/font_manager.cpp
+++ b/engines/ultima/ultima8/graphics/fonts/font_manager.cpp
@@ -99,9 +99,9 @@ Graphics::Font *FontManager::getTTF_Font(const Std::string &filename, int points
 		return iter->_value;
 
 	Common::SeekableReadStream *fontids;
-	fontids = FileSystem::get_instance()->ReadFile("data/" + filename);
+	fontids = FileSystem::get_instance()->ReadFile(filename);
 	if (!fontids) {
-		warning("Failed to open TTF: data/%s", filename.c_str());
+		warning("Failed to open TTF: %s", filename.c_str());
 		return nullptr;
 	}
 
@@ -112,13 +112,13 @@ Graphics::Font *FontManager::getTTF_Font(const Std::string &filename, int points
 	Graphics::Font *font = Graphics::loadTTFFont(*fontids, pointsize, Graphics::kTTFSizeModeCharacter, 0, mode, 0, false);
 
 	if (!font) {
-		warning("Failed to open TTF: data/%s", filename.c_str());
+		warning("Failed to open TTF: %s", filename.c_str());
 		return nullptr;
 	}
 
 	_ttfFonts[id] = font;
 
-	debugC(kDebugGraphics, "Opened TTF: data/%s.", filename.c_str());
+	debugC(kDebugGraphics, "Opened TTF: %s.", filename.c_str());
 	return font;
 #else // !USE_FREETYPE2
 	return nullptr;
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index bc1bf8216db..0939e858b5f 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -21,6 +21,7 @@
 
 #include "common/rational.h"
 #include "common/translation.h"
+#include "common/compression/unzip.h"
 #include "gui/saveload.h"
 #include "image/png.h"
 #include "engines/dialogs.h"
@@ -95,8 +96,6 @@
 #include "ultima/ultima8/gumps/shape_viewer_gump.h"
 #include "ultima/ultima8/metaengine.h"
 
-#include "ultima/shared/engine/data_archive.h"
-
 //#define PAINT_TIMING 1
 
 #define GAME_FRAME_TIME 50
@@ -175,23 +174,16 @@ Common::Error Ultima8Engine::run() {
 
 
 bool Ultima8Engine::initialize() {
-	Common::String folder;
-	int reqMajorVersion, reqMinorVersion;
-
 	// Call syncSoundSettings to get default volumes set
 	syncSoundSettings();
 
-	// Check if the game uses data from te ultima.dat archive
-	if (!isDataRequired(folder, reqMajorVersion, reqMinorVersion))
-		return true;
-
 	// Try and set up the data archive
-	// TODO: Refactor this to use a separate archive
-	Common::U32String errorMsg;
-	if (!Shared::UltimaDataArchive::load(folder, reqMajorVersion, reqMinorVersion, errorMsg)) {
-		GUIErrorMessage(errorMsg);
+	Common::Archive *archive = Common::makeZipArchive("ultima8.dat");
+	if (!archive) {
+		GUIErrorMessageFormat(_("Unable to locate the '%s' engine data file."), "ultima8.dat");
 		return false;
 	}
+	SearchMan.add("data", archive);
 
 	return true;
 }
@@ -1598,15 +1590,6 @@ uint32 Ultima8Engine::I_moveKeyDownRecently(const uint8 *args, unsigned int /*ar
 	return g->moveKeyDownRecently() ? 1 : 0;
 }
 
-bool Ultima8Engine::isDataRequired(Common::String &folder, int &majorVersion, int &minorVersion) {
-	folder = "ultima8";
-	// Version 1: Initial release
-	// Version 2: Add data for Crusader games
-	majorVersion = 2;
-	minorVersion = 0;
-	return true;
-}
-
 Graphics::Screen *Ultima8Engine::getScreen() const {
 	Graphics::Screen *scr = dynamic_cast<Graphics::Screen *>(_screen->getRawSurface());
 	assert(scr);
@@ -1618,7 +1601,7 @@ void Ultima8Engine::showSplashScreen() {
 	Common::File f;
 
 	// Get splash _screen image
-	if (!f.open("data/pentagram.png") || !png.loadStream(f))
+	if (!f.open("pentagram.png") || !png.loadStream(f))
 		return;
 
 	// Blit the splash image to the _screen
diff --git a/engines/ultima/ultima8/ultima8.h b/engines/ultima/ultima8/ultima8.h
index 5af6d936423..58092fa86e7 100644
--- a/engines/ultima/ultima8/ultima8.h
+++ b/engines/ultima/ultima8/ultima8.h
@@ -174,11 +174,6 @@ protected:
 
 	void pauseEngineIntern(bool pause) override;
 
-	/**
-	 * Returns the data archive folder and version that's required
-	 */
-	bool isDataRequired(Common::String &folder, int &majorVersion, int &minorVersion);
-
 public:
 	Ultima8Engine(OSystem *syst, const Ultima::UltimaGameDescription *gameDesc);
 	~Ultima8Engine() override;


Commit: 16af74a40e7e439839008ebb5d0fd353651d0dfb
    https://github.com/scummvm/scummvm/commit/16af74a40e7e439839008ebb5d0fd353651d0dfb
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2023-08-28T21:51:17+02:00

Commit Message:
ULTIMA: Regenerate ultima8.dat

Changed paths:
  A dists/engine-data/ultima8.dat


diff --git a/dists/engine-data/ultima8.dat b/dists/engine-data/ultima8.dat
new file mode 100644
index 00000000000..7fcf17df10c
Binary files /dev/null and b/dists/engine-data/ultima8.dat differ




More information about the Scummvm-git-logs mailing list