Move lobby handling into separate function
This commit is contained in:
parent
6c7f907d49
commit
19f3ff9b6d
4 changed files with 16 additions and 4 deletions
|
@ -227,9 +227,9 @@ void room_manager::exit_lobby(network::connection player)
|
|||
store_player_rooms(player);
|
||||
t_rooms_by_player_::iterator i = rooms_by_player_.find(player);
|
||||
if (i != rooms_by_player_.end()) {
|
||||
BOOST_FOREACH(room* r, i->second) {
|
||||
//BOOST_FOREACH(room* r, i->second) {
|
||||
//r->remove_player(player);
|
||||
}
|
||||
//}
|
||||
}
|
||||
rooms_by_player_.erase(player);
|
||||
}
|
||||
|
|
|
@ -52,6 +52,10 @@ class RoomList : public boost::noncopyable
|
|||
room_ptr make_room(const std::string& room_name);
|
||||
public:
|
||||
RoomList(PlayerMap& player_connections);
|
||||
|
||||
bool in_lobby(socket_ptr socket) {
|
||||
return room_map_.left.count(socket);
|
||||
}
|
||||
|
||||
void enter_room(const std::string& room_name, socket_ptr socket);
|
||||
void leave_room(const std::string& room_name, socket_ptr socket);
|
||||
|
|
|
@ -76,6 +76,7 @@
|
|||
|
||||
namespace {
|
||||
|
||||
/*
|
||||
clock_t get_cpu_time(bool active) {
|
||||
if(!active) {
|
||||
return 0;
|
||||
|
@ -84,6 +85,7 @@ clock_t get_cpu_time(bool active) {
|
|||
times(&buf);
|
||||
return buf.tms_utime + buf.tms_stime;
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
|
@ -1152,7 +1154,12 @@ void server::handle_read_from_player(socket_ptr socket, boost::shared_ptr<simple
|
|||
handle_query(socket, *query);
|
||||
}
|
||||
|
||||
// Lobby
|
||||
if(room_list_.in_lobby(socket))
|
||||
handle_player_in_lobby(socket, doc);
|
||||
|
||||
}
|
||||
|
||||
void server::handle_player_in_lobby(socket_ptr socket, boost::shared_ptr<simple_wml::document> doc) {
|
||||
if(simple_wml::node* message = doc->child("message")) {
|
||||
handle_message(socket, *message);
|
||||
}
|
||||
|
@ -1165,7 +1172,7 @@ void server::handle_read_from_player(socket_ptr socket, boost::shared_ptr<simple
|
|||
if(simple_wml::node* room_query = doc->child("room_query")) {
|
||||
handle_room_query(socket, *room_query);
|
||||
}
|
||||
|
||||
|
||||
if(simple_wml::node* create_game = doc->child("create_game")) {
|
||||
handle_create_game(socket, *create_game);
|
||||
}
|
||||
|
|
|
@ -80,6 +80,7 @@ private:
|
|||
void add_player(socket_ptr socket, const wesnothd::player&);
|
||||
void read_from_player(socket_ptr socket);
|
||||
void handle_read_from_player(socket_ptr socket, boost::shared_ptr<simple_wml::document> doc);
|
||||
void handle_player_in_lobby(socket_ptr socket, boost::shared_ptr<simple_wml::document> doc);
|
||||
void handle_whisper(socket_ptr socket, simple_wml::node& whisper);
|
||||
void handle_query(socket_ptr socket, simple_wml::node& query);
|
||||
void handle_message(socket_ptr socket, simple_wml::node& message);
|
||||
|
|
Loading…
Add table
Reference in a new issue