Skip to content

Commit

Permalink
Editor Generate Map: hold reference to generator vector instead of co…
Browse files Browse the repository at this point in the history
…pying
  • Loading branch information
Vultraz committed Apr 30, 2017
1 parent 5b6860e commit 7d9b3f4
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 16 deletions.
3 changes: 1 addition & 2 deletions src/editor/map/context_manager.cpp
Expand Up @@ -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());

Expand Down
4 changes: 2 additions & 2 deletions src/gui/dialogs/editor/generate_map.cpp
Expand Up @@ -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_()
Expand Down
11 changes: 3 additions & 8 deletions src/gui/dialogs/editor/generate_map.hpp
Expand Up @@ -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_;
}
Expand All @@ -67,7 +62,7 @@ class editor_generate_map : public modal_dialog
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_;
Expand Down
7 changes: 3 additions & 4 deletions src/tests/gui/test_gui2.cpp
Expand Up @@ -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") {
Expand All @@ -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;
}
Expand Down

0 comments on commit 7d9b3f4

Please sign in to comment.