From 88e47a8c7bc31f80f74b847657833cb5e574fc90 Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Tue, 24 Oct 2017 10:15:19 +1100 Subject: [PATCH] Connect Engine: cleaned up color handling a bit * Got rid of custom color class member variable. It was no longer used except in the ctor, so it could be demoted to a local value. * Use color id instead of color index for coloring unknown unit image in MP Staging. --- src/game_initialization/connect_engine.cpp | 16 ++++++---------- src/game_initialization/connect_engine.hpp | 4 ++-- src/gui/dialogs/multiplayer/mp_staging.cpp | 2 +- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/game_initialization/connect_engine.cpp b/src/game_initialization/connect_engine.cpp index d7cb88dfaa897..1c61dbca2d6a0 100644 --- a/src/game_initialization/connect_engine.cpp +++ b/src/game_initialization/connect_engine.cpp @@ -865,9 +865,8 @@ side_engine::side_engine(const config& cfg, connect_engine& parent_engine, const , flg_(parent_.era_factions_, cfg_, parent_.force_lock_settings_, parent_.params_.use_map_settings, parent_.params_.saved_game) , allow_changes_(!parent_.params_.saved_game && !(flg_.choosable_factions().size() == 1 && flg_.choosable_leaders().size() == 1 && flg_.choosable_genders().size() == 1)) , waiting_to_choose_faction_(allow_changes_) - , custom_color_() - , color_id_() - , color_options_() + , color_options_(game_config::default_colors) + , color_id_(color_options_[color_]) { // Save default attributes that could be overwirtten by the faction, so that correct faction lists would be // initialized by flg_manager when the new side config is sent over network. @@ -944,25 +943,22 @@ side_engine::side_engine(const config& cfg, connect_engine& parent_engine, const team_ = team_name_index; } - color_options_ = game_config::default_colors; - color_id_ = color_options_[color_]; - if(!cfg["color"].empty()) { if(cfg["color"].to_int()) { color_ = cfg["color"].to_int() - 1; color_id_ = color_options_[color_]; } else { - custom_color_ = cfg["color"].str(); + const std::string custom_color = cfg["color"].str(); - const auto iter = std::find(color_options_.begin(), color_options_.end(), custom_color_); + const auto iter = std::find(color_options_.begin(), color_options_.end(), custom_color); if(iter != color_options_.end()) { color_id_ = *iter; color_ = iter - color_options_.begin(); } else { - color_options_.push_back(custom_color_); + color_options_.push_back(custom_color); - color_id_ = custom_color_; + color_id_ = custom_color; color_ = color_options_.size() - 1; } } diff --git a/src/game_initialization/connect_engine.hpp b/src/game_initialization/connect_engine.hpp index 3e0294bd3f6c4..030cf61f7c058 100644 --- a/src/game_initialization/connect_engine.hpp +++ b/src/game_initialization/connect_engine.hpp @@ -268,10 +268,10 @@ class side_engine flg_manager flg_; const bool allow_changes_; bool waiting_to_choose_faction_; - std::string custom_color_; - std::string color_id_; std::vector color_options_; + + std::string color_id_; }; } // end namespace ng diff --git a/src/gui/dialogs/multiplayer/mp_staging.cpp b/src/gui/dialogs/multiplayer/mp_staging.cpp index be8a5189c81fb..ee5a4bb39d8d6 100644 --- a/src/gui/dialogs/multiplayer/mp_staging.cpp +++ b/src/gui/dialogs/multiplayer/mp_staging.cpp @@ -143,7 +143,7 @@ void mp_staging::add_side_node(window& window, ng::side_engine_ptr side) data.emplace("side_number", item); // TODO: don't hardcode magenta? - item["label"] = "units/unknown-unit.png~RC(magenta>" + std::to_string(side->color() + 1) + ")"; + item["label"] = "units/unknown-unit.png~RC(magenta>" + side->color_id() + ")"; data.emplace("leader_image", item); item["label"] = "icons/icon-random.png";