Yessss. Dedicated server is working, with some effort you can now create and join a game (start console server on local pc, start clients and use menu item "internet game"). Make sure to use different player names, there are no error messages yet.
More than one game cannot be created yet, but this is only due to no name input. Lots of issues still, don't expect this to be stable.
This commit is contained in:
@@ -824,6 +824,9 @@ void mainWindowImpl::callGameLobbyDialog() {
|
|||||||
|
|
||||||
if (myGameLobbyDialog->result() == QDialog::Accepted)
|
if (myGameLobbyDialog->result() == QDialog::Accepted)
|
||||||
{
|
{
|
||||||
|
myStartNetworkGameDialog->setSession(&getSession());
|
||||||
|
myStartNetworkGameDialog->treeWidget->clear();
|
||||||
|
|
||||||
showNetworkStartDialog();
|
showNetworkStartDialog();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -433,7 +433,6 @@ int
|
|||||||
ClientStateWaitSession::InternalProcess(ClientThread &client, boost::shared_ptr<NetPacket> packet)
|
ClientStateWaitSession::InternalProcess(ClientThread &client, boost::shared_ptr<NetPacket> packet)
|
||||||
{
|
{
|
||||||
int retVal = MSG_SOCK_INTERNAL_PENDING;
|
int retVal = MSG_SOCK_INTERNAL_PENDING;
|
||||||
ClientContext &context = client.GetContext();
|
|
||||||
|
|
||||||
if (packet->ToNetPacketInitAck())
|
if (packet->ToNetPacketInitAck())
|
||||||
{
|
{
|
||||||
@@ -442,12 +441,6 @@ ClientStateWaitSession::InternalProcess(ClientThread &client, boost::shared_ptr<
|
|||||||
packet->ToNetPacketInitAck()->GetData(initAckData);
|
packet->ToNetPacketInitAck()->GetData(initAckData);
|
||||||
client.SetGuiPlayerId(initAckData.playerId);
|
client.SetGuiPlayerId(initAckData.playerId);
|
||||||
|
|
||||||
// Player number is 0 on init. Will be set when the game starts.
|
|
||||||
boost::shared_ptr<PlayerData> playerData(
|
|
||||||
new PlayerData(initAckData.playerId, 0, PLAYER_TYPE_HUMAN, PLAYER_RIGHTS_NORMAL));
|
|
||||||
playerData->SetName(context.GetPlayerName());
|
|
||||||
client.AddPlayerData(playerData);
|
|
||||||
|
|
||||||
client.SetState(ClientStateWaitJoin::Instance());
|
client.SetState(ClientStateWaitJoin::Instance());
|
||||||
retVal = MSG_SOCK_SESSION_DONE;
|
retVal = MSG_SOCK_SESSION_DONE;
|
||||||
}
|
}
|
||||||
@@ -476,6 +469,7 @@ int
|
|||||||
ClientStateWaitJoin::InternalProcess(ClientThread &client, boost::shared_ptr<NetPacket> packet)
|
ClientStateWaitJoin::InternalProcess(ClientThread &client, boost::shared_ptr<NetPacket> packet)
|
||||||
{
|
{
|
||||||
int retVal = MSG_SOCK_INTERNAL_PENDING;
|
int retVal = MSG_SOCK_INTERNAL_PENDING;
|
||||||
|
ClientContext &context = client.GetContext();
|
||||||
|
|
||||||
if (packet->ToNetPacketGameListNew())
|
if (packet->ToNetPacketGameListNew())
|
||||||
{
|
{
|
||||||
@@ -490,9 +484,12 @@ ClientStateWaitJoin::InternalProcess(ClientThread &client, boost::shared_ptr<Net
|
|||||||
NetPacketJoinGameAck::Data joinGameAckData;
|
NetPacketJoinGameAck::Data joinGameAckData;
|
||||||
packet->ToNetPacketJoinGameAck()->GetData(joinGameAckData);
|
packet->ToNetPacketJoinGameAck()->GetData(joinGameAckData);
|
||||||
client.SetGameData(joinGameAckData.gameData);
|
client.SetGameData(joinGameAckData.gameData);
|
||||||
boost::shared_ptr<PlayerData> tmpPlayer = client.GetPlayerDataByUniqueId(client.GetGuiPlayerId());
|
|
||||||
assert(tmpPlayer.get());
|
// Player number is 0 on init. Will be set when the game starts.
|
||||||
tmpPlayer->SetRights(joinGameAckData.prights);
|
boost::shared_ptr<PlayerData> playerData(
|
||||||
|
new PlayerData(client.GetGuiPlayerId(), 0, PLAYER_TYPE_HUMAN, joinGameAckData.prights));
|
||||||
|
playerData->SetName(context.GetPlayerName());
|
||||||
|
client.AddPlayerData(playerData);
|
||||||
|
|
||||||
client.SetState(ClientStateWaitGame::Instance());
|
client.SetState(ClientStateWaitGame::Instance());
|
||||||
retVal = MSG_NET_GAME_CLIENT_JOIN;
|
retVal = MSG_NET_GAME_CLIENT_JOIN;
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ static void SendPlayerAction(ServerGameThread &server, boost::shared_ptr<PlayerI
|
|||||||
actionDoneData.totalPlayerBet = player->getMySet();
|
actionDoneData.totalPlayerBet = player->getMySet();
|
||||||
actionDoneData.playerMoney = player->getMyCash();
|
actionDoneData.playerMoney = player->getMyCash();
|
||||||
static_cast<NetPacketPlayersActionDone *>(notifyActionDone.get())->SetData(actionDoneData);
|
static_cast<NetPacketPlayersActionDone *>(notifyActionDone.get())->SetData(actionDoneData);
|
||||||
server.SendToAllPlayers(notifyActionDone);
|
server.SendToAllPlayers(notifyActionDone, SessionData::Game);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SendNewRoundCards(ServerGameThread &server, Game &curGame, int state)
|
static void SendNewRoundCards(ServerGameThread &server, Game &curGame, int state)
|
||||||
@@ -81,7 +81,7 @@ static void SendNewRoundCards(ServerGameThread &server, Game &curGame, int state
|
|||||||
for (int num = 0; num < 3; num++)
|
for (int num = 0; num < 3; num++)
|
||||||
notifyCardsData.flopCards[num] = static_cast<u_int16_t>(cards[num]);
|
notifyCardsData.flopCards[num] = static_cast<u_int16_t>(cards[num]);
|
||||||
static_cast<NetPacketDealFlopCards *>(notifyCards.get())->SetData(notifyCardsData);
|
static_cast<NetPacketDealFlopCards *>(notifyCards.get())->SetData(notifyCardsData);
|
||||||
server.SendToAllPlayers(notifyCards);
|
server.SendToAllPlayers(notifyCards, SessionData::Game);
|
||||||
} break;
|
} break;
|
||||||
case GAME_STATE_TURN: {
|
case GAME_STATE_TURN: {
|
||||||
// deal turn card
|
// deal turn card
|
||||||
@@ -91,7 +91,7 @@ static void SendNewRoundCards(ServerGameThread &server, Game &curGame, int state
|
|||||||
NetPacketDealTurnCard::Data notifyCardsData;
|
NetPacketDealTurnCard::Data notifyCardsData;
|
||||||
notifyCardsData.turnCard = static_cast<u_int16_t>(cards[3]);
|
notifyCardsData.turnCard = static_cast<u_int16_t>(cards[3]);
|
||||||
static_cast<NetPacketDealTurnCard *>(notifyCards.get())->SetData(notifyCardsData);
|
static_cast<NetPacketDealTurnCard *>(notifyCards.get())->SetData(notifyCardsData);
|
||||||
server.SendToAllPlayers(notifyCards);
|
server.SendToAllPlayers(notifyCards, SessionData::Game);
|
||||||
} break;
|
} break;
|
||||||
case GAME_STATE_RIVER: {
|
case GAME_STATE_RIVER: {
|
||||||
// deal river card
|
// deal river card
|
||||||
@@ -101,7 +101,7 @@ static void SendNewRoundCards(ServerGameThread &server, Game &curGame, int state
|
|||||||
NetPacketDealRiverCard::Data notifyCardsData;
|
NetPacketDealRiverCard::Data notifyCardsData;
|
||||||
notifyCardsData.riverCard = static_cast<u_int16_t>(cards[4]);
|
notifyCardsData.riverCard = static_cast<u_int16_t>(cards[4]);
|
||||||
static_cast<NetPacketDealRiverCard *>(notifyCards.get())->SetData(notifyCardsData);
|
static_cast<NetPacketDealRiverCard *>(notifyCards.get())->SetData(notifyCardsData);
|
||||||
server.SendToAllPlayers(notifyCards);
|
server.SendToAllPlayers(notifyCards, SessionData::Game);
|
||||||
} break;
|
} break;
|
||||||
default: {
|
default: {
|
||||||
//
|
//
|
||||||
@@ -163,7 +163,7 @@ AbstractServerGameStateReceiving::Process(ServerGameThread &server)
|
|||||||
outChatData.playerId = session.playerData->GetUniqueId();
|
outChatData.playerId = session.playerData->GetUniqueId();
|
||||||
outChatData.text = inChatData.text;
|
outChatData.text = inChatData.text;
|
||||||
static_cast<NetPacketChatText *>(outChat.get())->SetData(outChatData);
|
static_cast<NetPacketChatText *>(outChat.get())->SetData(outChatData);
|
||||||
server.SendToAllPlayers(outChat);
|
server.SendToAllPlayers(outChat, SessionData::Game);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -255,7 +255,7 @@ ServerGameStateInit::HandleNewSession(ServerGameThread &server, SessionWrapper s
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Send "Player Joined" to other fully connected clients.
|
// Send "Player Joined" to other fully connected clients.
|
||||||
server.SendToAllPlayers(CreateNetPacketPlayerJoined(*session.playerData));
|
server.SendToAllPlayers(CreateNetPacketPlayerJoined(*session.playerData), SessionData::Game);
|
||||||
|
|
||||||
// Session is now in game state.
|
// Session is now in game state.
|
||||||
session.sessionData->SetState(SessionData::Game);
|
session.sessionData->SetState(SessionData::Game);
|
||||||
@@ -381,7 +381,7 @@ ServerGameStateStartGame::Process(ServerGameThread &server)
|
|||||||
|
|
||||||
static_cast<NetPacketGameStart *>(answer.get())->SetData(gameStartData);
|
static_cast<NetPacketGameStart *>(answer.get())->SetData(gameStartData);
|
||||||
|
|
||||||
server.SendToAllPlayers(answer);
|
server.SendToAllPlayers(answer, SessionData::Game);
|
||||||
server.SetState(ServerGameStateStartHand::Instance());
|
server.SetState(ServerGameStateStartHand::Instance());
|
||||||
|
|
||||||
return MSG_NET_GAME_SERVER_START;
|
return MSG_NET_GAME_SERVER_START;
|
||||||
@@ -458,7 +458,7 @@ ServerGameStateStartHand::Process(ServerGameThread &server)
|
|||||||
actionDoneData.totalPlayerBet = playerArray[i]->getMySet();
|
actionDoneData.totalPlayerBet = playerArray[i]->getMySet();
|
||||||
actionDoneData.playerMoney = playerArray[i]->getMyCash();
|
actionDoneData.playerMoney = playerArray[i]->getMyCash();
|
||||||
static_cast<NetPacketPlayersActionDone *>(notifySmallBlind.get())->SetData(actionDoneData);
|
static_cast<NetPacketPlayersActionDone *>(notifySmallBlind.get())->SetData(actionDoneData);
|
||||||
server.SendToAllPlayers(notifySmallBlind);
|
server.SendToAllPlayers(notifySmallBlind, SessionData::Game);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -474,7 +474,7 @@ ServerGameStateStartHand::Process(ServerGameThread &server)
|
|||||||
actionDoneData.totalPlayerBet = playerArray[i]->getMySet();
|
actionDoneData.totalPlayerBet = playerArray[i]->getMySet();
|
||||||
actionDoneData.playerMoney = playerArray[i]->getMyCash();
|
actionDoneData.playerMoney = playerArray[i]->getMyCash();
|
||||||
static_cast<NetPacketPlayersActionDone *>(notifyBigBlind.get())->SetData(actionDoneData);
|
static_cast<NetPacketPlayersActionDone *>(notifyBigBlind.get())->SetData(actionDoneData);
|
||||||
server.SendToAllPlayers(notifyBigBlind);
|
server.SendToAllPlayers(notifyBigBlind, SessionData::Game);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -550,7 +550,7 @@ ServerGameStateStartRound::Process(ServerGameThread &server)
|
|||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
static_cast<NetPacketAllInShowCards *>(allIn.get())->SetData(allInData);
|
static_cast<NetPacketAllInShowCards *>(allIn.get())->SetData(allInData);
|
||||||
server.SendToAllPlayers(allIn);
|
server.SendToAllPlayers(allIn, SessionData::Game);
|
||||||
curGame.getCurrentHand()->setCardsShown(true);
|
curGame.getCurrentHand()->setCardsShown(true);
|
||||||
|
|
||||||
server.SetState(ServerGameStateShowCardsDelay::Instance());
|
server.SetState(ServerGameStateShowCardsDelay::Instance());
|
||||||
@@ -581,7 +581,7 @@ ServerGameStateStartRound::Process(ServerGameThread &server)
|
|||||||
playersTurnData.playerId = curPlayer->getMyUniqueID();
|
playersTurnData.playerId = curPlayer->getMyUniqueID();
|
||||||
static_cast<NetPacketPlayersTurn *>(notification.get())->SetData(playersTurnData);
|
static_cast<NetPacketPlayersTurn *>(notification.get())->SetData(playersTurnData);
|
||||||
|
|
||||||
server.SendToAllPlayers(notification);
|
server.SendToAllPlayers(notification, SessionData::Game);
|
||||||
|
|
||||||
server.SetState(ServerGameStateWaitPlayerAction::Instance());
|
server.SetState(ServerGameStateWaitPlayerAction::Instance());
|
||||||
|
|
||||||
@@ -607,7 +607,7 @@ ServerGameStateStartRound::Process(ServerGameThread &server)
|
|||||||
endHandData.playerMoney = player->getMyCash();
|
endHandData.playerMoney = player->getMyCash();
|
||||||
static_cast<NetPacketEndOfHandHideCards *>(endHand.get())->SetData(endHandData);
|
static_cast<NetPacketEndOfHandHideCards *>(endHand.get())->SetData(endHandData);
|
||||||
|
|
||||||
server.SendToAllPlayers(endHand);
|
server.SendToAllPlayers(endHand, SessionData::Game);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -642,7 +642,7 @@ ServerGameStateStartRound::Process(ServerGameThread &server)
|
|||||||
}
|
}
|
||||||
static_cast<NetPacketEndOfHandShowCards *>(endHand.get())->SetData(endHandData);
|
static_cast<NetPacketEndOfHandShowCards *>(endHand.get())->SetData(endHandData);
|
||||||
|
|
||||||
server.SendToAllPlayers(endHand);
|
server.SendToAllPlayers(endHand, SessionData::Game);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove disconnected players. This is the one and only place to do this.
|
// Remove disconnected players. This is the one and only place to do this.
|
||||||
@@ -655,6 +655,7 @@ ServerGameStateStartRound::Process(ServerGameThread &server)
|
|||||||
if (curGame.getCurrentHand()->getPlayerArray()[i]->getMyCash() > 0)
|
if (curGame.getCurrentHand()->getPlayerArray()[i]->getMyCash() > 0)
|
||||||
playersPositiveCashCounter++;
|
playersPositiveCashCounter++;
|
||||||
}
|
}
|
||||||
|
// TODO: this is not an assert - terminate game if true.
|
||||||
assert(playersPositiveCashCounter);
|
assert(playersPositiveCashCounter);
|
||||||
if (playersPositiveCashCounter == 1)
|
if (playersPositiveCashCounter == 1)
|
||||||
{
|
{
|
||||||
@@ -1019,7 +1020,7 @@ ServerGameStateNextGameDelay::Process(ServerGameThread &server)
|
|||||||
endGameData.winnerPlayerId = winnerPlayer->getMyUniqueID();
|
endGameData.winnerPlayerId = winnerPlayer->getMyUniqueID();
|
||||||
static_cast<NetPacketEndOfGame *>(endGame.get())->SetData(endGameData);
|
static_cast<NetPacketEndOfGame *>(endGame.get())->SetData(endGameData);
|
||||||
|
|
||||||
server.SendToAllPlayers(endGame);
|
server.SendToAllPlayers(endGame, SessionData::Game);
|
||||||
|
|
||||||
// Wait for the start of a new game.
|
// Wait for the start of a new game.
|
||||||
server.SetState(ServerGameStateInit::Instance());
|
server.SetState(ServerGameStateInit::Instance());
|
||||||
|
|||||||
@@ -96,9 +96,9 @@ ServerGameThread::GetCurRound() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ServerGameThread::SendToAllPlayers(boost::shared_ptr<NetPacket> packet)
|
ServerGameThread::SendToAllPlayers(boost::shared_ptr<NetPacket> packet, SessionData::State state)
|
||||||
{
|
{
|
||||||
GetSessionManager().SendToAllSessions(GetSender(), packet);
|
GetSessionManager().SendToAllSessions(GetSender(), packet, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -224,7 +224,7 @@ ServerGameThread::CloseSessionDelayed(SessionWrapper session)
|
|||||||
NetPacketPlayerLeft::Data thisPlayerLeftData;
|
NetPacketPlayerLeft::Data thisPlayerLeftData;
|
||||||
thisPlayerLeftData.playerId = tmpPlayerData->GetUniqueId();
|
thisPlayerLeftData.playerId = tmpPlayerData->GetUniqueId();
|
||||||
static_cast<NetPacketPlayerLeft *>(thisPlayerLeft.get())->SetData(thisPlayerLeftData);
|
static_cast<NetPacketPlayerLeft *>(thisPlayerLeft.get())->SetData(thisPlayerLeftData);
|
||||||
GetSessionManager().SendToAllSessions(GetSender(), thisPlayerLeft);
|
GetSessionManager().SendToAllSessions(GetSender(), thisPlayerLeft, SessionData::Game);
|
||||||
|
|
||||||
GetCallback().SignalNetServerPlayerLeft(tmpPlayerData->GetName());
|
GetCallback().SignalNetServerPlayerLeft(tmpPlayerData->GetName());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ SessionManager::GetSessionByPlayerName(const string playerName) const
|
|||||||
while (session_i != session_end)
|
while (session_i != session_end)
|
||||||
{
|
{
|
||||||
// Check all players which are fully connected.
|
// Check all players which are fully connected.
|
||||||
if (session_i->second.sessionData->GetState() == SessionData::Established)
|
if (session_i->second.sessionData->GetState() != SessionData::Init)
|
||||||
{
|
{
|
||||||
boost::shared_ptr<PlayerData> tmpPlayer(session_i->second.playerData);
|
boost::shared_ptr<PlayerData> tmpPlayer(session_i->second.playerData);
|
||||||
assert(tmpPlayer.get());
|
assert(tmpPlayer.get());
|
||||||
@@ -172,7 +172,7 @@ SessionManager::GetSessionByUniquePlayerId(unsigned uniqueId) const
|
|||||||
while (session_i != session_end)
|
while (session_i != session_end)
|
||||||
{
|
{
|
||||||
// Check all players which are fully connected.
|
// Check all players which are fully connected.
|
||||||
if (session_i->second.sessionData->GetState() == SessionData::Established)
|
if (session_i->second.sessionData->GetState() != SessionData::Init)
|
||||||
{
|
{
|
||||||
boost::shared_ptr<PlayerData> tmpPlayer(session_i->second.playerData);
|
boost::shared_ptr<PlayerData> tmpPlayer(session_i->second.playerData);
|
||||||
assert(tmpPlayer.get());
|
assert(tmpPlayer.get());
|
||||||
@@ -199,8 +199,8 @@ SessionManager::GetPlayerDataList() const
|
|||||||
|
|
||||||
while (session_i != session_end)
|
while (session_i != session_end)
|
||||||
{
|
{
|
||||||
// Get all players which are fully connected.
|
// Get all players in the game.
|
||||||
if (session_i->second.sessionData->GetState() == SessionData::Established)
|
if (session_i->second.sessionData->GetState() == SessionData::Game)
|
||||||
{
|
{
|
||||||
boost::shared_ptr<PlayerData> tmpPlayer(session_i->second.playerData);
|
boost::shared_ptr<PlayerData> tmpPlayer(session_i->second.playerData);
|
||||||
assert(tmpPlayer.get());
|
assert(tmpPlayer.get());
|
||||||
@@ -255,7 +255,7 @@ SessionManager::GetRawSessionCount()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
SessionManager::SendToAllSessions(SenderThread &sender, boost::shared_ptr<NetPacket> packet)
|
SessionManager::SendToAllSessions(SenderThread &sender, boost::shared_ptr<NetPacket> packet, SessionData::State state)
|
||||||
{
|
{
|
||||||
boost::mutex::scoped_lock lock(m_sessionMapMutex);
|
boost::mutex::scoped_lock lock(m_sessionMapMutex);
|
||||||
|
|
||||||
@@ -266,15 +266,15 @@ SessionManager::SendToAllSessions(SenderThread &sender, boost::shared_ptr<NetPac
|
|||||||
{
|
{
|
||||||
assert(i->second.sessionData.get());
|
assert(i->second.sessionData.get());
|
||||||
|
|
||||||
// Send each fully connected client a copy of the packet.
|
// Send each client (with a certain state) a copy of the packet.
|
||||||
if (i->second.sessionData->GetState() == SessionData::Established)
|
if (i->second.sessionData->GetState() == state)
|
||||||
sender.Send(i->first, boost::shared_ptr<NetPacket>(packet->Clone()));
|
sender.Send(i->first, boost::shared_ptr<NetPacket>(packet->Clone()));
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
SessionManager::SendToAllButOneSessions(SenderThread &sender, boost::shared_ptr<NetPacket> packet, SOCKET except)
|
SessionManager::SendToAllButOneSessions(SenderThread &sender, boost::shared_ptr<NetPacket> packet, SOCKET except, SessionData::State state)
|
||||||
{
|
{
|
||||||
boost::mutex::scoped_lock lock(m_sessionMapMutex);
|
boost::mutex::scoped_lock lock(m_sessionMapMutex);
|
||||||
|
|
||||||
@@ -284,7 +284,7 @@ SessionManager::SendToAllButOneSessions(SenderThread &sender, boost::shared_ptr<
|
|||||||
while (i != end)
|
while (i != end)
|
||||||
{
|
{
|
||||||
// Send each fully connected client but one a copy of the packet.
|
// Send each fully connected client but one a copy of the packet.
|
||||||
if (i->second.sessionData->GetState() == SessionData::Established)
|
if (i->second.sessionData->GetState() == state)
|
||||||
if (i->first != except)
|
if (i->first != except)
|
||||||
sender.Send(i->first, boost::shared_ptr<NetPacket>(packet->Clone()));
|
sender.Send(i->first, boost::shared_ptr<NetPacket>(packet->Clone()));
|
||||||
++i;
|
++i;
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public:
|
|||||||
ServerCallback &GetCallback();
|
ServerCallback &GetCallback();
|
||||||
GameState GetCurRound() const;
|
GameState GetCurRound() const;
|
||||||
|
|
||||||
void SendToAllPlayers(boost::shared_ptr<NetPacket> packet);
|
void SendToAllPlayers(boost::shared_ptr<NetPacket> packet, SessionData::State state);
|
||||||
|
|
||||||
bool CheckPassword(const std::string &password) const;
|
bool CheckPassword(const std::string &password) const;
|
||||||
const GameData &GetGameData() const;
|
const GameData &GetGameData() const;
|
||||||
|
|||||||
@@ -62,8 +62,8 @@ public:
|
|||||||
void Clear();
|
void Clear();
|
||||||
unsigned GetRawSessionCount();
|
unsigned GetRawSessionCount();
|
||||||
|
|
||||||
void SendToAllSessions(SenderThread &sender, boost::shared_ptr<NetPacket> packet);
|
void SendToAllSessions(SenderThread &sender, boost::shared_ptr<NetPacket> packet, SessionData::State state);
|
||||||
void SendToAllButOneSessions(SenderThread &sender, boost::shared_ptr<NetPacket> packet, SOCKET except);
|
void SendToAllButOneSessions(SenderThread &sender, boost::shared_ptr<NetPacket> packet, SOCKET except, SessionData::State state);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user