The Battle for Wesnoth
1.15.2+dev
editor
editor_main.cpp
Go to the documentation of this file.
1
/*
2
Copyright (C) 2008 - 2018 by Tomasz Sniatowski <kailoran@gmail.com>
3
Part of the Battle for Wesnoth Project https://www.wesnoth.org/
4
5
This program is free software; you can redistribute it and/or modify
6
it under the terms of the GNU General Public License as published by
7
the Free Software Foundation; either version 2 of the License, or
8
(at your option) any later version.
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY.
11
12
See the COPYING file for more details.
13
*/
14
#define GETTEXT_DOMAIN "wesnoth-editor"
15
16
#include "
editor/controller/editor_controller.hpp
"
17
18
#include "
gettext.hpp
"
19
#include "
filesystem.hpp
"
20
#include "
editor/action/action_base.hpp
"
21
22
#include <boost/algorithm/string/replace.hpp>
23
24
lg::log_domain
log_editor
(
"editor"
);
25
26
namespace
editor
{
27
28
EXIT_STATUS
start
(
const
std::string& filename
/* = "" */
,
29
bool
take_screenshot
/* = false */
,
const
std::string& screenshot_filename
/* = "map_screenshot.bmp" */
)
30
{
31
EXIT_STATUS
e
=
EXIT_ERROR
;
32
try
{
33
hotkey::scope_changer
h_;
34
hotkey::deactivate_all_scopes
();
35
hotkey::set_scope_active
(
hotkey::SCOPE_EDITOR
);
36
editor_controller
editor
;
37
if
(!filename.empty() &&
filesystem::file_exists
(filename)) {
38
if
(
filesystem::is_directory
(filename)) {
39
editor.
context_manager_
->set_default_dir(filename);
40
editor.
context_manager_
->load_map_dialog(
true
);
41
}
else
{
42
editor.
context_manager_
->load_map(filename,
false
);
43
44
// HACK: this fixes an issue where the button overlays would be missing when
45
// the loaded map appears. Since we're gonna drop this ridiculous GUI1 drawing
46
// stuff in 1.15 I'm not going to waste time coming up with a better fix.
47
//
48
// Do note adding a redraw_everything call to context_manager::refresh_all also
49
// fixes the issue, but I'm pretty sure thats just because editor_controller::
50
// display_redraw_callback gets called, which then calls set_button_state.
51
//
52
// -- vultraz, 2018-02-24
53
editor.
set_button_state
();
54
}
55
56
if
(take_screenshot) {
57
editor.
do_screenshot
(screenshot_filename);
58
e =
EXIT_NORMAL
;
59
}
60
}
61
62
if
(!take_screenshot)
63
e = editor.
main_loop
();
64
65
}
catch
(
const
editor_exception
& e) {
66
ERR_ED
<<
"Editor exception in editor::start: "
<< e.
what
() << std::endl;
67
throw
;
68
}
69
if
(
editor_action::get_instance_count
() != 0) {
70
ERR_ED
<<
"Possibly leaked "
<<
editor_action::get_instance_count
() <<
" action objects"
<< std::endl;
71
}
72
73
return
e
;
74
}
75
76
}
//end namespace editor
gettext.hpp
game_config::editor
bool editor
Definition:
game_config.cpp:102
editor::editor_controller::do_screenshot
void do_screenshot(const std::string &screenshot_filename="map_screenshot.bmp")
Takes a screenshot.
Definition:
editor_controller.cpp:189
log_editor
lg::log_domain log_editor("editor")
hotkey::set_scope_active
void set_scope_active(scope s, bool set)
Definition:
hotkey_command.cpp:340
filesystem::file_exists
static bool file_exists(const bfs::path &fpath)
Definition:
filesystem.cpp:266
lg::log_domain
Definition:
log.hpp:99
hotkey::SCOPE_EDITOR
Definition:
hotkey_command.hpp:36
editor::editor_action::get_instance_count
static int get_instance_count()
Debugging aid.
Definition:
action_base.hpp:100
action_base.hpp
Base class for editor actions.
editor_controller.hpp
editor::editor_controller
The editor_controller class contains the mouse and keyboard event handling routines for the editor...
Definition:
editor_controller.hpp:67
hotkey::command_executor_default::set_button_state
void set_button_state()
Definition:
command_executor.cpp:670
editor::EXIT_NORMAL
Definition:
editor_main.hpp:24
editor::editor_exception
Definition:
editor_common.hpp:40
filesystem::is_directory
bool is_directory(const std::string &fname)
Returns true if the given file is a directory.
Definition:
filesystem.cpp:1082
editor
Manage the empty-palette in the editor.
Definition:
action.cpp:29
game::error::what
const char * what() const noexcept
Definition:
exceptions.hpp:37
hotkey::deactivate_all_scopes
void deactivate_all_scopes()
Definition:
hotkey_command.cpp:333
editor::EXIT_ERROR
Definition:
editor_main.hpp:27
filesystem.hpp
Declarations for File-IO.
editor::EXIT_STATUS
EXIT_STATUS
Definition:
editor_main.hpp:23
hotkey::scope_changer
Definition:
hotkey_command.hpp:298
editor::editor_controller::main_loop
EXIT_STATUS main_loop()
Editor main loop.
Definition:
editor_controller.cpp:171
ERR_ED
#define ERR_ED
Definition:
editor_common.hpp:33
editor::start
EXIT_STATUS start(const std::string &filename, bool take_screenshot, const std::string &screenshot_filename)
Main interface for launching the editor from the title screen.
Definition:
editor_main.cpp:28
e
#define e
editor::editor_controller::context_manager_
const std::unique_ptr< context_manager > context_manager_
Definition:
editor_controller.hpp:249
Generated by
1.8.13