[Scummvm-git-logs] scummvm master -> d9381a9d8646fc35c0f3a73ea85c6facb5bab3d1

dreammaster dreammaster at scummvm.org
Sun Mar 21 01:57:43 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:
d9381a9d86 AGS: Fixes for importing character into QFG2


Commit: d9381a9d8646fc35c0f3a73ea85c6facb5bab3d1
    https://github.com/scummvm/scummvm/commit/d9381a9d8646fc35c0f3a73ea85c6facb5bab3d1
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2021-03-20T18:57:13-07:00

Commit Message:
AGS: Fixes for importing character into QFG2

Changed paths:
    engines/ags/engine/ac/listbox.cpp
    engines/ags/shared/util/path.h


diff --git a/engines/ags/engine/ac/listbox.cpp b/engines/ags/engine/ac/listbox.cpp
index 1634dc78c4..520246cd51 100644
--- a/engines/ags/engine/ac/listbox.cpp
+++ b/engines/ags/engine/ac/listbox.cpp
@@ -76,16 +76,19 @@ void ListBox_Clear(GUIListBox *listbox) {
 void FillDirList(std::set<String> &files, const String &path) {
 	String dirName = Path::GetDirectoryPath(path);
 	String filePattern = Path::get_filename(path);
+
 	if (dirName.CompareLeftNoCase(get_install_dir()) == 0) {
 		String subDir = dirName.Mid(get_install_dir().GetLength());
 		if (!subDir.IsEmpty() && subDir[0u] == '/')
 			subDir.ClipLeft(1);
 		dirName = ConfMan.get("path");
 	} else if (dirName.CompareLeftNoCase(get_save_game_directory()) == 0) {
-		String subDir = dirName.Mid(get_save_game_directory().GetLength());
-		if (!subDir.IsEmpty() && subDir[0u] == '/')
-			subDir.ClipLeft(1);
-		dirName = Path::ConcatPaths(ConfMan.get("savepath"), subDir);
+		// Save files listing
+		Common::StringArray matches = g_system->getSavefileManager()->listSavefiles(filePattern);
+		for (uint idx = 0; idx < matches.size(); ++idx)
+			files.insert(matches[idx]);
+		return;
+
 	}
 
 	Common::FSDirectory dir(dirName);
@@ -101,7 +104,6 @@ void ListBox_FillDirList(GUIListBox *listbox, const char *filemask) {
 	_G(guis_need_update) = 1;
 
 	ResolvedPath rp;
-	ResolveScriptPath("$SAVEGAMEDIR$/agssave.*", true, rp);
 	if (!ResolveScriptPath(filemask, true, rp))
 		return;
 
diff --git a/engines/ags/shared/util/path.h b/engines/ags/shared/util/path.h
index 9afee49861..d33ac26371 100644
--- a/engines/ags/shared/util/path.h
+++ b/engines/ags/shared/util/path.h
@@ -86,6 +86,9 @@ String  GetPathInASCII(const String &path);
 String  GetCmdLinePathInASCII(const char *arg, int arg_index);
 
 inline String get_filename(const String &pathAndName) {
+	size_t p = pathAndName.FindCharReverse('/');
+	if (p != String::npos)
+		return String(pathAndName.GetNullableCStr() + p + 1);
 	return Common::FSNode(pathAndName).getName();
 }
 




More information about the Scummvm-git-logs mailing list