From f8bc4aa7db1cd4a764b2c7fa872a3ad5d0d7db61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20=C5=9Aniatowski?= Date: Sat, 14 Nov 2009 01:25:37 +0100 Subject: [PATCH] fix new lobby bug not allowing a player to rejoin a room he or she just left --- src/lobby_data.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lobby_data.cpp b/src/lobby_data.cpp index e5b516fbeeb..e7bfe2a9301 100644 --- a/src/lobby_data.cpp +++ b/src/lobby_data.cpp @@ -31,6 +31,11 @@ static lg::log_domain log_config("config"); static lg::log_domain log_engine("engine"); #define WRN_NG LOG_STREAM(warn, log_engine) +static lg::log_domain log_lobby("lobby"); +#define DBG_LB LOG_STREAM(info, log_lobby) +#define LOG_LB LOG_STREAM(info, log_lobby) +#define ERR_LB LOG_STREAM(err, log_lobby) + chat_message::chat_message(const time_t& timestamp, const std::string& user, const std::string& message) : timestamp(timestamp), user(user), message(message) { @@ -497,12 +502,15 @@ chat_log& lobby_info::get_whisper_log(const std::string &name) void lobby_info::open_room(const std::string &name) { - rooms_.push_back(room_info(name)); + if (!has_room(name)) { + rooms_.push_back(room_info(name)); + } } void lobby_info::close_room(const std::string &name) { room_info* r = get_room(name); + DBG_LB << "lobby info: closing room " << name << " " << (void*)r << "\n"; if (r) { rooms_.erase(rooms_.begin() + (r - &rooms_[0])); }