diff options
Diffstat (limited to 'backends/graphics')
-rw-r--r-- | backends/graphics/openglsdl/openglsdl-graphics.cpp | 12 | ||||
-rw-r--r-- | backends/graphics/surfacesdl/surfacesdl-graphics.cpp | 16 |
2 files changed, 20 insertions, 8 deletions
diff --git a/backends/graphics/openglsdl/openglsdl-graphics.cpp b/backends/graphics/openglsdl/openglsdl-graphics.cpp index 860173a3c6..9b25f43f39 100644 --- a/backends/graphics/openglsdl/openglsdl-graphics.cpp +++ b/backends/graphics/openglsdl/openglsdl-graphics.cpp @@ -22,6 +22,7 @@ #include "backends/graphics/openglsdl/openglsdl-graphics.h" #include "backends/events/sdl/sdl-events.h" +#include "backends/platform/sdl/sdl.h" #include "common/textconsole.h" #include "common/config-manager.h" @@ -620,25 +621,30 @@ bool OpenGLSdlGraphicsManager::notifyEvent(const Common::Event &event) { return true; } + // Alt-s creates a screenshot if (event.kbd.keycode == Common::KEYCODE_s) { - // Alt-s creates a screenshot Common::String filename; + Common::String screenshotsPath = ((OSystem_SDL *)g_system)->getScreenshotsPath(); + for (int n = 0;; n++) { SDL_RWops *file; filename = Common::String::format("scummvm%05d.bmp", n); - file = SDL_RWFromFile(filename.c_str(), "r"); + + file = SDL_RWFromFile((screenshotsPath + filename).c_str(), "r"); + if (!file) break; SDL_RWclose(file); } - saveScreenshot(filename.c_str()); + saveScreenshot((screenshotsPath + filename).c_str()); debug("Saved screenshot '%s'", filename.c_str()); return true; } + } else if (event.kbd.hasFlags(Common::KBD_CTRL | Common::KBD_ALT)) { if ( event.kbd.keycode == Common::KEYCODE_PLUS || event.kbd.keycode == Common::KEYCODE_MINUS || event.kbd.keycode == Common::KEYCODE_KP_PLUS || event.kbd.keycode == Common::KEYCODE_KP_MINUS) { diff --git a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp index 690e9a360e..047941cb43 100644 --- a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp +++ b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp @@ -2524,21 +2524,27 @@ bool SurfaceSdlGraphicsManager::notifyEvent(const Common::Event &event) { // Alt-S: Create a screenshot if (event.kbd.hasFlags(Common::KBD_ALT) && event.kbd.keycode == 's') { - char filename[20]; + Common::String filename; + + Common::String screenshotsPath = ((OSystem_SDL *)g_system)->getScreenshotsPath(); for (int n = 0;; n++) { SDL_RWops *file; - sprintf(filename, "scummvm%05d.bmp", n); - file = SDL_RWFromFile(filename, "r"); + filename = Common::String::format("scummvm%05d.bmp", n); + + file = SDL_RWFromFile((screenshotsPath + filename).c_str(), "r"); + if (!file) break; SDL_RWclose(file); } - if (saveScreenshot(filename)) - debug("Saved screenshot '%s'", filename); + + if (saveScreenshot((screenshotsPath + filename).c_str())) + debug("Saved screenshot '%s'", filename.c_str()); else warning("Could not save screenshot"); + return true; } |