EXIT_STATUS start(const config& game_conf, CVideo& video, const std::string& filename /* = "" */, bool take_screenshot /* = false */, const std::string& screenshot_filename /* = "map_screenshot.bmp" */) { EXIT_STATUS e = EXIT_ERROR; try { hotkey::scope_changer h_(game_conf, "hotkey_editor"); hotkey::deactivate_all_scopes(); hotkey::set_scope_active(hotkey::SCOPE_GENERAL); hotkey::set_scope_active(hotkey::SCOPE_EDITOR); editor_controller editor(game_conf, video); if (!filename.empty()) { if (is_directory(filename)) { editor.set_default_dir(filename); editor.load_map_dialog(true); } else { editor.load_map(filename, false); } } if(take_screenshot) { editor.do_screenshot(screenshot_filename); e = EXIT_NORMAL; } else { e = editor.main_loop(); } } catch (editor_exception& e) { ERR_ED << "Editor exception in editor::start: " << e.what() << "\n"; throw; } if (editor_action::get_instance_count() != 0) { ERR_ED << "Possibly leaked " << editor_action::get_instance_count() << " action objects\n"; } return e; }
EXIT_STATUS start(const config& game_conf, CVideo& video, hero_map& heros, int mode, const std::string& filename /* = "" */, bool take_screenshot /* = false */, const std::string& screenshot_filename /* = "map_screenshot.bmp" */) { EXIT_STATUS e = EXIT_ERROR; try { editor_controller editor(game_conf, video, heros, mode); if (!filename.empty()) { if (is_directory(filename)) { editor.set_default_dir(filename); editor.load_map_dialog(true); } else { editor.load_map(filename, false); } } if(take_screenshot) { editor.do_screenshot(screenshot_filename); e = EXIT_NORMAL; } else { e = editor.main_loop(); } } catch (editor_exception& e) { ERR_ED << "Editor exception in editor::start: " << e.what() << "\n"; throw; } if (editor_action::get_instance_count() != 0) { ERR_ED << "Possibly leaked " << editor_action::get_instance_count() << " action objects\n"; } return e; }