Rejoin now works, but yet only as spectator.
This commit is contained in:
@@ -1495,6 +1495,7 @@ ClientStateWaitStart::InternalHandlePacket(boost::shared_ptr<ClientThread> clien
|
||||
if (tmpPacket->GetMsg()->present == PokerTHMessage_PR_gameStartMessage) {
|
||||
// Start the network game as client.
|
||||
GameStartMessage_t *netGameStart = &tmpPacket->GetMsg()->choice.gameStartMessage;
|
||||
unsigned tmpHandId = 0;
|
||||
|
||||
StartData startData;
|
||||
startData.startDealerPlayerId = netGameStart->startDealerPlayerId;
|
||||
@@ -1525,6 +1526,7 @@ ClientStateWaitStart::InternalHandlePacket(boost::shared_ptr<ClientThread> clien
|
||||
// Set player numbers using the game start data slots.
|
||||
RejoinPlayerData_t **playerInfos = netStartModeRejoin->rejoinPlayerData.list.array;
|
||||
unsigned numPlayers = netStartModeRejoin->rejoinPlayerData.list.count;
|
||||
tmpHandId = netStartModeRejoin->handNum;
|
||||
// Request player info for players if needed.
|
||||
if (numPlayers && playerInfos && *playerInfos) {
|
||||
for (unsigned i = 0; i < numPlayers; i++) {
|
||||
@@ -1541,6 +1543,7 @@ ClientStateWaitStart::InternalHandlePacket(boost::shared_ptr<ClientThread> clien
|
||||
throw ClientException(__FILE__, __LINE__, ERR_NET_INTERNAL_GAME_ERROR, 0);
|
||||
}
|
||||
client->InitGame();
|
||||
client->GetGame()->setCurrentHandID(tmpHandId);
|
||||
client->GetCallback().SignalNetClientGameInfo(MSG_NET_GAME_CLIENT_START);
|
||||
client->SetState(ClientStateWaitHand::Instance());
|
||||
}
|
||||
|
||||
@@ -1133,9 +1133,8 @@ ServerGameStateHand::GetDealCardsDelaySec(ServerGame &server)
|
||||
void
|
||||
ServerGameStateHand::StartNewHand(boost::shared_ptr<ServerGame> server)
|
||||
{
|
||||
// Initialize hand.
|
||||
Game &curGame = server->GetGame();
|
||||
curGame.initHand();
|
||||
|
||||
// Initialize rejoining players.
|
||||
{
|
||||
PlayerIdList rejoinIdList(server->GetAndResetRejoinPlayers());
|
||||
@@ -1158,6 +1157,7 @@ ServerGameStateHand::StartNewHand(boost::shared_ptr<ServerGame> server)
|
||||
GameStartModeRejoin_t *netStartModeRejoin = &netGameStart->gameStartMode.choice.gameStartModeRejoin;
|
||||
|
||||
// Send player data to client.
|
||||
netStartModeRejoin->handNum = curGame.getCurrentHandID();
|
||||
PlayerListIterator player_i = curGame.getSeatsList()->begin();
|
||||
PlayerListIterator player_end = curGame.getSeatsList()->end();
|
||||
while (player_i != player_end) {
|
||||
@@ -1178,6 +1178,9 @@ ServerGameStateHand::StartNewHand(boost::shared_ptr<ServerGame> server)
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize hand.
|
||||
curGame.initHand();
|
||||
|
||||
// HACK: Skip GUI notification run
|
||||
curGame.getCurrentHand()->getFlop()->skipFirstRunGui();
|
||||
curGame.getCurrentHand()->getTurn()->skipFirstRunGui();
|
||||
|
||||
Reference in New Issue
Block a user