From 7b27213daab3fd1bdf1aa8ef84330090d8d04210 Mon Sep 17 00:00:00 2001 From: lotodore Date: Sat, 10 Aug 2013 16:29:15 +0200 Subject: [PATCH] Waiting state for spectator mode. --- src/net/common/servergamestate.cpp | 2 ++ src/net/sessiondata.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/net/common/servergamestate.cpp b/src/net/common/servergamestate.cpp index 976e8fe6..bbbe8dd5 100644 --- a/src/net/common/servergamestate.cpp +++ b/src/net/common/servergamestate.cpp @@ -874,6 +874,7 @@ AbstractServerGameStateRunning::HandleNewSpectator(boost::shared_ptr { if (session && session->GetPlayerData()) { AcceptNewSession(server, session, false); + session->SetState(SessionData::Waiting); server->AddNewSpectator(session->GetPlayerData()->GetUniqueId()); } } @@ -1399,6 +1400,7 @@ ServerGameStateHand::InitNewSpectators(boost::shared_ptr server) while (i != end) { boost::shared_ptr session(server->GetSessionManager().GetSessionByUniquePlayerId(*i)); if (session && session->GetPlayerData()) { + session->SetState(SessionData::Spectating); SendGameData(server, session); } ++i; diff --git a/src/net/sessiondata.h b/src/net/sessiondata.h index 591b5272..1b3edba3 100644 --- a/src/net/sessiondata.h +++ b/src/net/sessiondata.h @@ -58,7 +58,7 @@ class ServerGame; class SessionData : public boost::enable_shared_from_this { public: - enum State { Init = 1, ReceivingAvatar = 2, Established = 4, Game = 8, Spectating = 16, Closed = 32 }; + enum State { Init = 1, ReceivingAvatar = 2, Established = 4, Game = 8, Spectating = 16, Waiting = 32, Closed = 64 }; SessionData(boost::shared_ptr sock, SessionId id, SessionDataCallback &cb, boost::asio::io_service &ioService); ~SessionData();