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();