aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README14
-rw-r--r--backends/platform/sdl/macosx/macosx.cpp4
-rw-r--r--backends/platform/sdl/sdl.cpp5
-rw-r--r--backends/platform/sdl/win32/win32.cpp15
4 files changed, 30 insertions, 8 deletions
diff --git a/README b/README
index 15da89c076..f326171866 100644
--- a/README
+++ b/README
@@ -2682,11 +2682,19 @@ configuration of each entry, allowing the custom options to be shown.
9.0) Screenshots (SDL backend only):
---- -------------------------------
On systems using the SDL backend (for example Windows, Mac or Linux) you can use
-alt+s to take snapshots (see section 5.4 - Hotkeys). The location of the created
-screenshot file depends on the OS:
+alt+s to take snapshots (see section 5.4 - Hotkeys).
+
+You can specify the directory in which you want the screenshots to be created in
+the config file. To do so add a screenshotpath value under the [scummvm] section:
+
+[scummvm]
+screenshotpath=/path/to/screenshots/
+
+The default location, when no screenshot path is defined in the config file,
+depends on the OS:
Windows: In Users\username\My Pictures\ScummVM Screenshots.
macOS X: On the Desktop.
- Any other OS: In the current directoty.
+ Any other OS: In the current directory.
10.0) Compiling:
diff --git a/backends/platform/sdl/macosx/macosx.cpp b/backends/platform/sdl/macosx/macosx.cpp
index 500e438ec0..8669bf6a66 100644
--- a/backends/platform/sdl/macosx/macosx.cpp
+++ b/backends/platform/sdl/macosx/macosx.cpp
@@ -188,7 +188,9 @@ Common::String OSystem_MacOSX::getSystemLanguage() const {
}
Common::String OSystem_MacOSX::getScreenshotsPath() {
- Common::String path = getDesktopPathMacOSX();
+ Common::String path = ConfMan.get("screenshotpath");
+ if (path.empty())
+ path = getDesktopPathMacOSX();
if (!path.empty() && !path.hasSuffix("/"))
path += "/";
return path;
diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp
index 09268f3a53..9a5db7f110 100644
--- a/backends/platform/sdl/sdl.cpp
+++ b/backends/platform/sdl/sdl.cpp
@@ -573,7 +573,10 @@ Common::SaveFileManager *OSystem_SDL::getSavefileManager() {
//Not specified in base class
Common::String OSystem_SDL::getScreenshotsPath() {
- return Common::String();
+ Common::String path = ConfMan.get("screenshotpath");
+ if (!path.empty() && !path.hasSuffix("/"))
+ path += "/";
+ return path;
}
#ifdef USE_OPENGL
diff --git a/backends/platform/sdl/win32/win32.cpp b/backends/platform/sdl/win32/win32.cpp
index 02ad225749..5724250109 100644
--- a/backends/platform/sdl/win32/win32.cpp
+++ b/backends/platform/sdl/win32/win32.cpp
@@ -147,13 +147,22 @@ bool OSystem_Win32::openUrl(const Common::String &url) {
}
Common::String OSystem_Win32::getScreenshotsPath() {
+ Common::String screenshotsPath = ConfMan.get("screenshotpath");
+ if (!screenshotsPath.empty()) {
+ if (!screenshotsPath.hasSuffix("\\") && !screenshotsPath.hasSuffix("/")
+ screenshotsPath += "\\";
+ return screenshotsPath;
+ }
+
char picturesPath[MAXPATHLEN];
// Use the My Pictures folder.
- if (SHGetFolderPath(NULL, CSIDL_MYPICTURES, NULL, SHGFP_TYPE_CURRENT, picturesPath) != S_OK)
- error("Unable to access My Pictures directory");
+ if (SHGetFolderPath(NULL, CSIDL_MYPICTURES, NULL, SHGFP_TYPE_CURRENT, picturesPath) != S_OK) {
+ warning("Unable to access My Pictures directory");
+ return Common::String();
+ }
- Common::String screenshotsPath = Common::String(picturesPath) + "\\ScummVM Screenshots\\";
+ screenshotsPath = Common::String(picturesPath) + "\\ScummVM Screenshots\\";
// If the directory already exists (as it should in most cases),
// we don't want to fail, but we need to stop on other errors (such as ERROR_PATH_NOT_FOUND)