From 11c1976a3b0bd7a1bea585bdaf112575f9e08057 Mon Sep 17 00:00:00 2001 From: "Ignacio R. Morelle" Date: Wed, 29 Oct 2014 21:30:55 -0300 Subject: [PATCH 1/8] Fix thread count setting for 1.9 wesnothd and add one for 1.12 --- utils/mp-server/run_server | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/utils/mp-server/run_server b/utils/mp-server/run_server index 9483a4ce687..a623830fdb1 100755 --- a/utils/mp-server/run_server +++ b/utils/mp-server/run_server @@ -40,10 +40,12 @@ case $SERVER in THREADS=16 ;; 1.7*) PORT=14997 THREADS=16 ;; -1.9*) PORT=14997 - THREADS=16 ;; -1.10) +1.9*|1.10*) + PORT=14997 THREADS=30 ;; +1.12*) + # TODO: increase after 1.12.0 is announced + THREADS=16 ;; esac ulimit -Ss 2048 From d4f7ebc8edccb11c511f5199d81b0a24af43716c Mon Sep 17 00:00:00 2001 From: "Ignacio R. Morelle" Date: Wed, 29 Oct 2014 21:38:44 -0300 Subject: [PATCH 2/8] create_symlinks: Make an exception for 1.10 --- utils/mp-server/create_symlinks | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/utils/mp-server/create_symlinks b/utils/mp-server/create_symlinks index 8b9421a6c8d..9164f85ac87 100755 --- a/utils/mp-server/create_symlinks +++ b/utils/mp-server/create_symlinks @@ -12,6 +12,12 @@ MINOR_V=${STABLE#*.} OLDSTABLE=$MAJOR_V.$(($MINOR_V-2)) DEV=$MAJOR_V.$(($MINOR_V+1)) PREV=$DEV-prev + +if [ "$OLDSTABLE" = "1.10" ]; then + # special case for 1.10 since it kept the 1.9 dir + OLDSTABLE="1.9" +fi + echo "oldstable = $OLDSTABLE; stable = $STABLE; dev = $DEV; prev = $PREV" set -x From 97fc1ad96ac34fe996839ee5dc41f91889f9228f Mon Sep 17 00:00:00 2001 From: gfgtdf Date: Thu, 30 Oct 2014 01:09:29 +0100 Subject: [PATCH 3/8] remove unused attributes from carryover sides --- src/carryover.cpp | 8 -------- src/carryover.hpp | 4 ---- 2 files changed, 12 deletions(-) diff --git a/src/carryover.cpp b/src/carryover.cpp index 019e01ee37e..cdef32529ca 100644 --- a/src/carryover.cpp +++ b/src/carryover.cpp @@ -25,10 +25,8 @@ carryover::carryover(const config& side) : add_(side["add"].to_bool()) - , color_(side["color"]) , current_player_(side["current_player"]) , gold_(side["gold"].to_int()) - , name_(side["name"]) // if we load it from a snapshot we need to read the recruits from "recruits" and not from "previous_recruits". , previous_recruits_(side.has_attribute("recruit") ? utils::set_split(side["recruit"]) :utils::set_split(side["previous_recruits"])) , recall_list_() @@ -47,10 +45,8 @@ carryover::carryover(const config& side) carryover::carryover(const team& t, const int gold, const bool add) : add_ (add) - , color_(t.color()) , current_player_(t.current_player()) , gold_(gold) - , name_(t.name()) , previous_recruits_(t.recruits()) , recall_list_() , save_id_(t.save_id()) @@ -108,9 +104,7 @@ std::string carryover::get_recruits(bool erase){ void carryover::update_carryover(const team& t, const int gold, const bool add){ gold_ += gold; add_ = add; - color_ = t.color(); current_player_ = t.current_player(); - name_ = t.name(); previous_recruits_.insert(t.recruits().begin(), t.recruits().end()); BOOST_FOREACH(const unit_const_ptr & u, t.recall_list()) { recall_list_.push_back(config()); @@ -141,9 +135,7 @@ void carryover::to_config(config& cfg){ side["save_id"] = save_id_; side["gold"] = gold_; side["add"] = add_; - side["color"] = color_; side["current_player"] = current_player_; - side["name"] = name_; side["previous_recruits"] = get_recruits(false); BOOST_FOREACH(const config & u_cfg, recall_list_) side.add_child("unit", u_cfg); diff --git a/src/carryover.hpp b/src/carryover.hpp index 76aae2d33c9..0814fb902c0 100644 --- a/src/carryover.hpp +++ b/src/carryover.hpp @@ -18,10 +18,8 @@ class carryover{ public: carryover() : add_ () - , color_() , current_player_() , gold_() - , name_() , previous_recruits_() , recall_list_() , save_id_() @@ -44,10 +42,8 @@ public: void set_gold(int gold, bool add); private: bool add_; - std::string color_; std::string current_player_; int gold_; - std::string name_; std::set previous_recruits_; // NOTE: we store configs instead of units because units often assume or // assert that various resources:: are available, which is not the From c9a9d3e4d4e1a6d5e3814520132c9e146c6b4384 Mon Sep 17 00:00:00 2001 From: gfgtdf Date: Thu, 30 Oct 2014 01:09:37 +0100 Subject: [PATCH 4/8] add a comment --- src/team.hpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/team.hpp b/src/team.hpp index 10b348b0137..d8782886dc6 100644 --- a/src/team.hpp +++ b/src/team.hpp @@ -212,6 +212,9 @@ public: int minimum_recruit_price() const; const std::string& last_recruit() const { return last_recruit_; } void last_recruit(const std::string & u_type) { last_recruit_ = u_type; } + // TODO: This attribute is never used for user messages. (currently + // current_player is used there). It's only used for debug messages + // and it's accessible to wml via [store_side]. Do we really need it? const std::string& name() const { return info_.name; } From cc526e9737a1d5f15d0af0b824577eeaf22cc908 Mon Sep 17 00:00:00 2001 From: gfgtdf Date: Thu, 30 Oct 2014 01:36:07 +0100 Subject: [PATCH 5/8] remove unused function --- src/saved_game.hpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/saved_game.hpp b/src/saved_game.hpp index 50f7a5714d5..61d2007d409 100644 --- a/src/saved_game.hpp +++ b/src/saved_game.hpp @@ -41,9 +41,8 @@ public: /** Multiplayer parameters for this game */ mp_game_settings& mp_settings() { return mp_settings_; } const mp_game_settings& mp_settings() const { return mp_settings_; } - + void set_carryover_sides_start(config carryover_sides_start); - const config& carryover() { return carryover_; } /// copies the content of a [scenario] with the correct id attribute from the game config into this object. /// reloads the game config from disk if necessary. From 3098c60aeff4e731d035cac8e142e225d753e72c Mon Sep 17 00:00:00 2001 From: gfgtdf Date: Thu, 30 Oct 2014 02:25:22 +0100 Subject: [PATCH 6/8] fix mp wrong defautl controllers the old code resulted in human sides beeing ai by default for stat-of-scenaro saves in the mp connect dialog. --- src/connect_engine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connect_engine.cpp b/src/connect_engine.cpp index 773b843011d..45b87e3c3e8 100644 --- a/src/connect_engine.cpp +++ b/src/connect_engine.cpp @@ -869,7 +869,7 @@ side_engine::side_engine(const config& cfg, connect_engine& parent_engine, // Reserve a side for "current_player", unless the side // is played by an AI. set_controller(CNTR_RESERVED); - } else if (allow_player_ && !parent_.params_.saved_game) { + } else if (allow_player_) { set_controller(parent_.default_controller_); } else { // AI is the default. From 05afcd4dff2cff8b4d322b8df43453788d8922b5 Mon Sep 17 00:00:00 2001 From: gfgtdf Date: Thu, 30 Oct 2014 02:32:57 +0100 Subject: [PATCH 7/8] remove saved_game operator = this assignment operator is not better than the defult operator. --- src/saved_game.cpp | 10 ---------- src/saved_game.hpp | 1 - 2 files changed, 11 deletions(-) diff --git a/src/saved_game.cpp b/src/saved_game.cpp index 4184a1ccab3..16b994dfb5d 100644 --- a/src/saved_game.cpp +++ b/src/saved_game.cpp @@ -133,16 +133,6 @@ saved_game::saved_game(const saved_game& state) { } -saved_game& saved_game::operator=(const saved_game& state) -{ - // Use copy constructor to make sure we are coherent - if (this != &state) { - this->~saved_game(); - new (this) saved_game(state) ; - } - return *this ; -} - void saved_game::set_carryover_sides_start(config carryover_sides_start) { carryover_.swap(carryover_sides_start); diff --git a/src/saved_game.hpp b/src/saved_game.hpp index 61d2007d409..d7617e668ab 100644 --- a/src/saved_game.hpp +++ b/src/saved_game.hpp @@ -27,7 +27,6 @@ public: explicit saved_game(const config& cfg); ~saved_game(){} - saved_game& operator=(const saved_game& state); /// writes the config information into a stream (file) void write_config(config_writer& out) const; From 030470282df6801084dba085f46053ec26b4490e Mon Sep 17 00:00:00 2001 From: gfgtdf Date: Thu, 30 Oct 2014 02:43:57 +0100 Subject: [PATCH 8/8] add a warning log message. --- src/connect_engine.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/connect_engine.cpp b/src/connect_engine.cpp index 45b87e3c3e8..bbb3e98a974 100644 --- a/src/connect_engine.cpp +++ b/src/connect_engine.cpp @@ -856,11 +856,17 @@ side_engine::side_engine(const config& cfg, connect_engine& parent_engine, // Tweak the controllers. if (cfg_["controller"] == "human_ai" || cfg_["controller"] == "network_ai" || - (parent_.state_.classification().campaign_type == game_classification::SCENARIO && cfg_["controller"].blank()) || - (cfg_["controller"] == "network" && !allow_player_ && parent_.params_.saved_game)) { //this is a workaround for bug #21797 - + (parent_.state_.classification().campaign_type == game_classification::SCENARIO && cfg_["controller"].blank())) + { cfg_["controller"] = "ai"; } + //this is a workaround for bug #21797 + if(cfg_["controller"] == "network" && !allow_player_ && parent_.params_.saved_game) + { + WRN_MP << "Found a side controlled by a network player with allow_player=no" << std::endl; + cfg_["controller"] = "ai"; + } + if (cfg_["controller"] == "null") { set_controller(CNTR_EMPTY); } else if (cfg_["controller"] == "ai") {