[Scummvm-git-logs] scummvm master -> 1008f64d7478b97259fd309b34eff2a3a846cf6b

sev- sev at scummvm.org
Fri Nov 12 15:14:55 UTC 2021


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:
1008f64d74 GUI: Added support for multiple icon archives


Commit: 1008f64d7478b97259fd309b34eff2a3a846cf6b
    https://github.com/scummvm/scummvm/commit/1008f64d7478b97259fd309b34eff2a3a846cf6b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2021-11-12T16:14:19+01:00

Commit Message:
GUI: Added support for multiple icon archives

Changed paths:
    gui/gui-manager.cpp


diff --git a/gui/gui-manager.cpp b/gui/gui-manager.cpp
index affa379f72..f36c266438 100644
--- a/gui/gui-manager.cpp
+++ b/gui/gui-manager.cpp
@@ -108,9 +108,32 @@ GuiManager::~GuiManager() {
 	delete _theme;
 }
 
+struct ArchiveMemberListBackComparator {
+	bool operator()(const Common::ArchiveMemberPtr &a, const Common::ArchiveMemberPtr &b) {
+		return a->getName() > b->getName();
+	}
+};
 void GuiManager::initIconsSet() {
 	Common::Archive *dat;
 
+	if (ConfMan.hasKey("iconspath")) {
+		Common::FSDirectory *iconDir = new Common::FSDirectory(ConfMan.get("iconspath"));
+		Common::ArchiveMemberList iconFiles;
+
+		iconDir->listMatchingMembers(iconFiles, "gui-icons*.dat");
+		Common::sort(iconFiles.begin(), iconFiles.end(), ArchiveMemberListBackComparator());
+
+		for (Common::ArchiveMemberList::iterator ic = iconFiles.begin(); ic != iconFiles.end(); ++ic) {
+			debug(2, "GUI: Loaded icon file: %s", (*ic)->getName().c_str());
+
+			dat = Common::makeZipArchive((*ic)->createReadStream());
+
+			if (dat) {
+				_iconsSet.add((*ic)->getName(), dat);
+			}
+		}
+	}
+
 	const char fname[] = "gui-icons.dat";
 	Common::String path;
 	Common::FSNode *fs = nullptr;
@@ -147,6 +170,8 @@ void GuiManager::initIconsSet() {
 
 	_iconsSet.add(path, dat);
 
+	debug(2, "GUI: Loaded icon file: %s", path.c_str());
+
 	delete fs;
 }
 




More information about the Scummvm-git-logs mailing list