wesnoth-cvs-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Wesnoth-cvs-commits] wesnoth/src/server game.hpp game.cpp server.cpp


From: Jon Daniel
Subject: [Wesnoth-cvs-commits] wesnoth/src/server game.hpp game.cpp server.cpp
Date: Wed, 08 Jun 2005 17:10:39 -0400

CVSROOT:        /cvsroot/wesnoth
Module name:    wesnoth
Branch:         
Changes by:     Jon Daniel <address@hidden>     05/06/08 21:10:39

Modified files:
        src/server     : game.hpp game.cpp server.cpp 

Log message:
        Fixes for players controlling multiple sides.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/server/game.hpp.diff?tr1=1.20&tr2=1.21&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/server/game.cpp.diff?tr1=1.36&tr2=1.37&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/server/server.cpp.diff?tr1=1.79&tr2=1.80&r1=text&r2=text

Patches:
Index: wesnoth/src/server/game.cpp
diff -u wesnoth/src/server/game.cpp:1.36 wesnoth/src/server/game.cpp:1.37
--- wesnoth/src/server/game.cpp:1.36    Tue Jun  7 20:24:23 2005
+++ wesnoth/src/server/game.cpp Wed Jun  8 21:10:39 2005
@@ -153,7 +153,9 @@
                                        side_controllers_[side_index] = 
"network";
                                        
sides_.insert(std::pair<network::connection, size_t>(player, side_index));
                                        sides_taken_[side_index] = true;
-                                       network::queue_data(cfg, 
players_.front());
+                                       config new_cfg = cfg;
+                                       new_cfg["side"] = (**i)["side"];
+                                       network::queue_data(new_cfg, 
players_.front());
                                        return true;
                                }
                        }
@@ -172,6 +174,7 @@
 void game::update_side_data()
 {
        sides_taken_.clear();
+       sides_taken_.resize(9);
        sides_.clear();
 
        const config::child_itors level_sides = level_.child_range("side");
@@ -204,7 +207,7 @@
                        
                        if((**sd)["controller"] == "network") {
                                side_controllers_[side_index] = "network";
-                               if((**sd)["description"] == 
info->second.name()) {
+                               if((**sd)["user_description"] == 
info->second.name()) {
                                        
sides_.insert(std::pair<network::connection, size_t>(*player, side_index));
                                        sides_taken_[side_index] = true;
                                }
@@ -216,7 +219,7 @@
                                side_controllers_[side_index] = "ai";
                                sides_taken_[side_index] = true;
                        }
-                       else if((**sd)["controller"] == "human"){
+                       else if((**sd)["controller"] == "human") {
                                sides_taken_[side_index] = true;
                                side_controllers_[side_index] = "human";
                        }
@@ -270,17 +273,17 @@
                        return not_during_turn;
                }
        }
-       
-       sides_.insert(std::pair<network::connection,size_t>(*i, side_index));
        side_controllers_[side_index] = "network";
        sides_taken_[side_index] = true;
-
+       sides_.insert(std::pair<const network::connection,size_t>(*i, 
side_index));
+       
+       // send a response to the host and to the new controller
        config response;
        config& change = response.add_child("change_controller");
 
        change["side"] = side;
-       change["controller"] = "network";
 
+       change["controller"] = "network";
        network::queue_data(response,players_.front());
 
        change["controller"] = "human";
@@ -292,7 +295,6 @@
                observer_quit.add_child("observer_quit").values["name"] = 
player;
                send_data(observer_quit);
        }
-
        static const std::string success = "";
        return success;
 }
@@ -450,6 +452,7 @@
 {
        const std::vector<network::connection>::iterator itor =
                     std::find(players_.begin(),players_.end(),player);
+       
        if(itor != players_.end())
                players_.erase(itor);
 
Index: wesnoth/src/server/game.hpp
diff -u wesnoth/src/server/game.hpp:1.20 wesnoth/src/server/game.hpp:1.21
--- wesnoth/src/server/game.hpp:1.20    Tue Jun  7 20:24:23 2005
+++ wesnoth/src/server/game.hpp Wed Jun  8 21:10:39 2005
@@ -110,7 +110,7 @@
        static int id_num;
        int id_;
        std::vector<network::connection> players_;
-       std::map<network::connection,size_t> sides_;
+       std::multimap<network::connection,size_t> sides_;
        std::vector<bool> sides_taken_;
        std::vector<std::string> side_controllers_;
        bool started_;
Index: wesnoth/src/server/server.cpp
diff -u wesnoth/src/server/server.cpp:1.79 wesnoth/src/server/server.cpp:1.80
--- wesnoth/src/server/server.cpp:1.79  Sat Jun  4 19:16:06 2005
+++ wesnoth/src/server/server.cpp       Wed Jun  8 21:10:39 2005
@@ -599,7 +599,7 @@
                                const config& msg = 
construct_server_message("You have been banned",*g);
                                network::send_data(msg, pl->first);
                        } else {
-                               g->remove_player(pl->first, false);
+                               g->remove_player(pl->first);
                        }
 
                        config leave_game;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]