aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/defaultsettings.cpp2
-rw-r--r--src/game.cpp19
2 files changed, 21 insertions, 0 deletions
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp
index 84fac75ec..435eefd86 100644
--- a/src/defaultsettings.cpp
+++ b/src/defaultsettings.cpp
@@ -43,6 +43,7 @@ void set_default_settings()
g_settings.setDefault("keymap_freemove", "KEY_KEY_K");
g_settings.setDefault("keymap_fastmove", "KEY_KEY_J");
g_settings.setDefault("keymap_frametime_graph", "KEY_F1");
+ g_settings.setDefault("keymap_screenshot", "KEY_F12");
// Some (temporary) keys for debugging
g_settings.setDefault("keymap_special1", "KEY_KEY_E");
g_settings.setDefault("keymap_print_debug_stacks", "KEY_KEY_P");
@@ -71,6 +72,7 @@ void set_default_settings()
g_settings.setDefault("enable_farmesh", "false");
g_settings.setDefault("enable_clouds", "true");
g_settings.setDefault("invisible_stone", "false");
+ g_settings.setDefault("screenshot_path", ".");
// Server stuff
g_settings.setDefault("enable_experimental", "false");
diff --git a/src/game.cpp b/src/game.cpp
index 59f14d37d..3197985e6 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -1246,6 +1246,25 @@ void the_game(
chat_lines.push_back(ChatLine(L"frametime_graph enabled"));
}
}
+ else if(input->wasKeyDown(getKeySetting("keymap_screenshot")))
+ {
+ irr::video::IImage* const image = driver->createScreenShot();
+ if (image) {
+ irr::c8 filename[256];
+ snprintf(filename, 256, "%s/screenshot_%u.png",
+ g_settings.get("screenshot_path").c_str(),
+ device->getTimer()->getRealTime());
+ if (driver->writeImageToFile(image, filename)) {
+ std::wstringstream sstr;
+ sstr<<"Saved screenshot to '"<<filename<<"'";
+ dstream<<"Saved screenshot to '"<<filename<<"'"<<std::endl;
+ chat_lines.push_back(ChatLine(sstr.str()));
+ } else{
+ dstream<<"Failed to save screenshot '"<<filename<<"'"<<std::endl;
+ }
+ image->drop();
+ }
+ }
// Item selection with mouse wheel
{