Editor Generate Map: hold reference to generator vector instead of copying
This commit is contained in:
parent
5b6860ec65
commit
7d9b3f44ad
4 changed files with 9 additions and 16 deletions
|
@ -662,8 +662,7 @@ void context_manager::generate_map_dialog()
|
|||
return;
|
||||
}
|
||||
|
||||
gui2::dialogs::editor_generate_map dialog;
|
||||
dialog.set_map_generators(map_generators_);
|
||||
gui2::dialogs::editor_generate_map dialog(map_generators_);
|
||||
dialog.select_map_generator(last_map_generator_);
|
||||
dialog.show(gui_.video());
|
||||
|
||||
|
|
|
@ -64,8 +64,8 @@ namespace dialogs
|
|||
|
||||
REGISTER_DIALOG(editor_generate_map)
|
||||
|
||||
editor_generate_map::editor_generate_map()
|
||||
: map_generators_()
|
||||
editor_generate_map::editor_generate_map(std::vector<map_generator*>& mg)
|
||||
: map_generators_(mg)
|
||||
, last_map_generator_(nullptr)
|
||||
, current_map_generator_(0)
|
||||
, random_seed_()
|
||||
|
|
|
@ -35,14 +35,9 @@ namespace dialogs
|
|||
class editor_generate_map : public modal_dialog
|
||||
{
|
||||
public:
|
||||
editor_generate_map();
|
||||
explicit editor_generate_map(std::vector<map_generator*>& mg);
|
||||
|
||||
void set_map_generators(std::vector<map_generator*> mg)
|
||||
{
|
||||
map_generators_ = mg;
|
||||
}
|
||||
|
||||
std::vector<map_generator*> get_map_generators()
|
||||
std::vector<map_generator*>& get_map_generators()
|
||||
{
|
||||
return map_generators_;
|
||||
}
|
||||
|
@ -67,7 +62,7 @@ private:
|
|||
void do_settings();
|
||||
|
||||
/** Available map generators */
|
||||
std::vector<map_generator*> map_generators_;
|
||||
std::vector<map_generator*>& map_generators_;
|
||||
|
||||
/** Last used map generator, must be in map_generators_ */
|
||||
map_generator* last_map_generator_;
|
||||
|
|
|
@ -992,9 +992,6 @@ struct dialog_tester<editor_generate_map>
|
|||
{
|
||||
editor_generate_map* create()
|
||||
{
|
||||
editor_generate_map* result = new editor_generate_map();
|
||||
BOOST_REQUIRE_MESSAGE(result, "Failed to create a dialog.");
|
||||
|
||||
std::vector<map_generator*> map_generators;
|
||||
for(const config &i : main_config.child_range("multiplayer")) {
|
||||
if(i["scenario_generation"] == "default") {
|
||||
|
@ -1005,7 +1002,9 @@ struct dialog_tester<editor_generate_map>
|
|||
}
|
||||
}
|
||||
}
|
||||
result->set_map_generators(map_generators);
|
||||
|
||||
editor_generate_map* result = new editor_generate_map(map_generators);
|
||||
BOOST_REQUIRE_MESSAGE(result, "Failed to create a dialog.");
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue