[Scummvm-git-logs] scummvm branch-2-3 -> b65a4fa83ef6971aa94876e7506653ac31d561ed
sev-
sev at scummvm.org
Wed Sep 1 13:39:26 UTC 2021
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:
768dd91ddc GUI: Added optional file mask for FileBrowserDialog
b65a4fa83e DIRECTOR: Enforce game target as prefix to the saved files in FileIO
Commit: 768dd91ddca595f25dbaf84fe05312ca7e6cfffe
https://github.com/scummvm/scummvm/commit/768dd91ddca595f25dbaf84fe05312ca7e6cfffe
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2021-09-01T15:39:02+02:00
Commit Message:
GUI: Added optional file mask for FileBrowserDialog
Changed paths:
gui/filebrowser-dialog.cpp
gui/filebrowser-dialog.h
diff --git a/gui/filebrowser-dialog.cpp b/gui/filebrowser-dialog.cpp
index aac4536e4b..8d8af2ac57 100644
--- a/gui/filebrowser-dialog.cpp
+++ b/gui/filebrowser-dialog.cpp
@@ -39,11 +39,15 @@ enum {
kChooseCmd = 'Chos'
};
-FileBrowserDialog::FileBrowserDialog(const char *title, const char *fileExtension, int mode)
+FileBrowserDialog::FileBrowserDialog(const char *title, const char *fileExtension, int mode, const char *fileMask)
: Dialog("FileBrowser"), _mode(mode), _fileExt(fileExtension) {
- _fileMask = "*.";
- _fileMask += fileExtension;
+ if (fileMask == NULL) {
+ _fileMask = "*.";
+ _fileMask += fileExtension;
+ } else {
+ _fileMask = fileMask;
+ }
_fileList = nullptr;
new StaticTextWidget(this, "FileBrowser.Headline", title ? Common::convertToU32String(title) :
diff --git a/gui/filebrowser-dialog.h b/gui/filebrowser-dialog.h
index e807a9db98..7a2005af8a 100644
--- a/gui/filebrowser-dialog.h
+++ b/gui/filebrowser-dialog.h
@@ -39,7 +39,7 @@ enum {
class FileBrowserDialog : public Dialog {
public:
- FileBrowserDialog(const char *title, const char *fileExtension, int mode);
+ FileBrowserDialog(const char *title, const char *fileExtension, int mode, const char *fileMask = NULL);
void open() override;
Commit: b65a4fa83ef6971aa94876e7506653ac31d561ed
https://github.com/scummvm/scummvm/commit/b65a4fa83ef6971aa94876e7506653ac31d561ed
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2021-09-01T15:39:13+02:00
Commit Message:
DIRECTOR: Enforce game target as prefix to the saved files in FileIO
Changed paths:
engines/director/director.h
engines/director/lingo/xlibs/fileio.cpp
diff --git a/engines/director/director.h b/engines/director/director.h
index ab534a6ae8..ee79766255 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -194,6 +194,7 @@ public:
void setVersion(uint16 version);
Common::Platform getPlatform() const;
Common::Language getLanguage() const;
+ Common::String getTargetName() { return _targetName; }
const char *getExtra();
Common::String getEXEName() const;
StartMovie getStartMovie() const;
diff --git a/engines/director/lingo/xlibs/fileio.cpp b/engines/director/lingo/xlibs/fileio.cpp
index e17f4e95fd..fe21cd1b62 100644
--- a/engines/director/lingo/xlibs/fileio.cpp
+++ b/engines/director/lingo/xlibs/fileio.cpp
@@ -148,9 +148,13 @@ void FileIO::m_new(int nargs) {
Common::String option = d1.asString();
Common::String filename = d2.asString();
+ Common::String prefix = g_director->getTargetName() + '-';
+
if (option.hasPrefix("?")) {
option = option.substr(1);
- GUI::FileBrowserDialog browser(0, "txt", option.equalsIgnoreCase("write") ? GUI::kFBModeSave : GUI::kFBModeLoad);
+ Common::String mask = prefix + "*.txt";
+
+ GUI::FileBrowserDialog browser(0, "txt", option.equalsIgnoreCase("write") ? GUI::kFBModeSave : GUI::kFBModeLoad, mask.c_str());
if (browser.runModal() <= 0) {
g_lingo->push(Datum(kErrorFileNotFound));
return;
@@ -160,6 +164,12 @@ void FileIO::m_new(int nargs) {
filename += ".txt";
}
+ // Enforce target to the created files so they do not mix up
+ if (!option.hasPrefix("?") || option.equalsIgnoreCase("write")) {
+ if (!filename.hasPrefixIgnoreCase(prefix))
+ filename = prefix + filename;
+ }
+
if (option.equalsIgnoreCase("read")) {
me->_inFile = saves->openForLoading(filename);
me->_inStream = me->_inFile;
@@ -409,7 +419,13 @@ void FileIO::m_fileName(int nargs) {
FileObject *me = static_cast<FileObject *>(g_lingo->_currentMe.u.obj);
if (me->_filename) {
- g_lingo->push(Datum(*me->_filename));
+ Common::String prefix = g_director->getTargetName() + '-';
+ Common::String res = *me->_filename;
+ if (res.hasPrefix(prefix)) {
+ res = Common::String(&me->_filename->c_str()[prefix.size() + 1]);
+ }
+
+ g_lingo->push(Datum(res));
} else {
warning("FileIO: No file open");
g_lingo->push(Datum(kErrorFileNotOpen));
More information about the Scummvm-git-logs
mailing list