diff options
-rw-r--r-- | src/defaultsettings.cpp | 2 | ||||
-rw-r--r-- | src/game.cpp | 19 |
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 { |