Work on spectator mode - joining as spectator now possible (on server side).

This commit is contained in:
lotodore
2013-06-29 16:23:10 +02:00
parent cbd6b40f85
commit ef489dae8a
12 changed files with 732 additions and 118 deletions
+24 -2
View File
@@ -178,13 +178,13 @@ ServerGame::GetCurRound() const
}
void
ServerGame::SendToAllPlayers(boost::shared_ptr<NetPacket> packet, SessionData::State state)
ServerGame::SendToAllPlayers(boost::shared_ptr<NetPacket> packet, int state)
{
GetSessionManager().SendToAllSessions(GetLobbyThread().GetSender(), packet, state);
}
void
ServerGame::SendToAllButOnePlayers(boost::shared_ptr<NetPacket> packet, SessionId except, SessionData::State state)
ServerGame::SendToAllButOnePlayers(boost::shared_ptr<NetPacket> packet, SessionId except, int state)
{
GetSessionManager().SendToAllButOneSessions(GetLobbyThread().GetSender(), packet, except, state);
}
@@ -625,6 +625,12 @@ ServerGame::GetPlayerIdList() const
return idList;
}
PlayerIdList
ServerGame::GetSpectatorIdList() const
{
return GetSessionManager().GetPlayerIdList(SessionData::Spectating);
}
bool
ServerGame::IsPlayerConnected(const std::string &name) const
{
@@ -747,6 +753,22 @@ ServerGame::GetAndResetReactivatePlayers()
return tmpList;
}
void
ServerGame::AddNewSpectator(unsigned playerId)
{
boost::mutex::scoped_lock lock(m_newSpectatorListMutex);
m_newSpectatorList.push_back(playerId);
}
PlayerIdList
ServerGame::GetAndResetNewSpectators()
{
boost::mutex::scoped_lock lock(m_newSpectatorListMutex);
PlayerIdList tmpList(m_newSpectatorList);
m_newSpectatorList.clear();
return tmpList;
}
void
ServerGame::SetNameReported()
{