Author: ilor
Date: Mon May 18 10:45:25 2009
New Revision: 35732

URL: http://svn.gna.org/viewcvs/wesnoth?rev=35732&view=rev
Log:
fix and use the predicate version of send_to_many

Modified:
    trunk/src/server/game.cpp
    trunk/src/server/player_network.cpp
    trunk/src/server/player_network.hpp

Modified: trunk/src/server/game.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/server/game.cpp?rev=35732&r1=35731&r2=35732&view=diff
==============================================================================
--- trunk/src/server/game.cpp (original)
+++ trunk/src/server/game.cpp Mon May 18 10:45:25 2009
@@ -21,6 +21,8 @@
 
 #include "game.hpp"
 #include "player_network.hpp"
+
+#include <boost/bind.hpp>
 
 #ifndef __func__
  #ifdef __FUNCTION__
@@ -1159,15 +1161,11 @@
                                                  std::string packet_type) const
 {
        DBG_GAME << __func__ << "...\n";
-       if (packet_type.empty())
-               packet_type = data.root().first_child().to_string();
-       simple_wml::string_span s = data.output_compressed();
-       for(user_vector::const_iterator i = players_.begin(); i != 
players_.end(); ++i) {
-               if(*i != exclude && is_on_team(team,*i)) {
-                       network::send_raw_data(s.begin(), s.size(), *i, 
packet_type);
-               }
-       }
-}
+       wesnothd::send_to_many(data, players_,
+               boost::bind(&game::is_on_team, this, boost::ref(team), _1),
+               exclude, packet_type);
+}
+
 
 bool game::is_on_team(const simple_wml::string_span& team, const 
network::connection player) const {
        const simple_wml::node::child_list& side_list = 
level_.root().children("side");

Modified: trunk/src/server/player_network.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/server/player_network.cpp?rev=35732&r1=35731&r2=35732&view=diff
==============================================================================
--- trunk/src/server/player_network.cpp (original)
+++ trunk/src/server/player_network.cpp Mon May 18 10:45:25 2009
@@ -36,13 +36,14 @@
 }
 
 void send_to_many(simple_wml::document& data, const connection_vector& vec,
-                                 boost::function<bool (network::connection)> 
except_pred, std::string packet_type)
+                                 boost::function<bool (network::connection)> 
except_pred,
+                                 const network::connection exclude, 
std::string packet_type)
 {
        if (packet_type.empty())
                packet_type = data.root().first_child().to_string();
        simple_wml::string_span s = data.output_compressed();
        for(connection_vector::const_iterator i = vec.begin(); i != vec.end(); 
++i) {
-               if (!except_pred(*i)) {
+               if ((*i != exclude) && !except_pred(*i)) {
                        network::send_raw_data(s.begin(), s.size(), *i, 
packet_type);
                }
        }

Modified: trunk/src/server/player_network.hpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/server/player_network.hpp?rev=35732&r1=35731&r2=35732&view=diff
==============================================================================
--- trunk/src/server/player_network.hpp (original)
+++ trunk/src/server/player_network.hpp Mon May 18 10:45:25 2009
@@ -43,7 +43,8 @@
 void send_to_many(simple_wml::document& data,
                                  const connection_vector& vec,
                                  boost::function<bool (network::connection)> 
except_pred,
-                                 std::string packet_type);
+                                 const network::connection exclude = 0,
+                                 std::string packet_type = "");
 } //end namespace wesnothd
 
 #endif


_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits

Reply via email to