The subscribe/unsubscribe lobby messages system has been integrated in the client.
This commit is contained in:
@@ -206,6 +206,7 @@ void gameLobbyDialogImpl::refresh(int actionID) {
|
|||||||
|
|
||||||
if (actionID == MSG_NET_GAME_CLIENT_START)
|
if (actionID == MSG_NET_GAME_CLIENT_START)
|
||||||
{
|
{
|
||||||
|
treeWidget_GameList->clear();
|
||||||
this->accept();
|
this->accept();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1017,9 +1017,8 @@ ClientStateSynchronizeStart::Process(ClientThread &client)
|
|||||||
boost::shared_ptr<NetPacket> startAck(new NetPacketStartEventAck);
|
boost::shared_ptr<NetPacket> startAck(new NetPacketStartEventAck);
|
||||||
client.GetSender().Send(client.GetContext().GetSessionData(), startAck);
|
client.GetSender().Send(client.GetContext().GetSessionData(), startAck);
|
||||||
// Unsubscribe lobby messages.
|
// Unsubscribe lobby messages.
|
||||||
// TODO
|
boost::shared_ptr<NetPacket> unsubscr(new NetPacketUnsubscribeGameList);
|
||||||
//boost::shared_ptr<NetPacket> unsubscr(new NetPacketUnsubscribeGameList);
|
client.GetSender().Send(client.GetContext().GetSessionData(), unsubscr);
|
||||||
//client.GetSender().Send(client.GetContext().GetSessionData(), unsubscr);
|
|
||||||
|
|
||||||
client.SetState(ClientStateWaitStart::Instance());
|
client.SetState(ClientStateWaitStart::Instance());
|
||||||
}
|
}
|
||||||
@@ -1150,6 +1149,12 @@ ClientStateWaitHand::InternalProcess(ClientThread &client, boost::shared_ptr<Net
|
|||||||
if (!tmpPlayer)
|
if (!tmpPlayer)
|
||||||
throw ClientException(__FILE__, __LINE__, ERR_NET_UNKNOWN_PLAYER_ID, 0);
|
throw ClientException(__FILE__, __LINE__, ERR_NET_UNKNOWN_PLAYER_ID, 0);
|
||||||
client.GetGui().logPlayerWinGame(tmpPlayer->getMyName(), curGame->getMyGameID());
|
client.GetGui().logPlayerWinGame(tmpPlayer->getMyName(), curGame->getMyGameID());
|
||||||
|
// Clear game info map as it is outdated.
|
||||||
|
client.ClearGameInfoMap();
|
||||||
|
// Resubscribe Lobby messages.
|
||||||
|
boost::shared_ptr<NetPacket> resubscr(new NetPacketResubscribeGameList);
|
||||||
|
client.GetSender().Send(client.GetContext().GetSessionData(), resubscr);
|
||||||
|
// Show Lobby dialog.
|
||||||
client.GetCallback().SignalNetClientWaitDialog();
|
client.GetCallback().SignalNetClientWaitDialog();
|
||||||
client.SetState(ClientStateWaitGame::Instance());
|
client.SetState(ClientStateWaitGame::Instance());
|
||||||
retVal = MSG_NET_GAME_CLIENT_END;
|
retVal = MSG_NET_GAME_CLIENT_END;
|
||||||
|
|||||||
@@ -981,6 +981,18 @@ ServerLobbyThread::InternalResubscribeMsg(SessionWrapper session)
|
|||||||
{
|
{
|
||||||
session.sessionData->SetWantsLobbyMsg();
|
session.sessionData->SetWantsLobbyMsg();
|
||||||
SendGameList(session.sessionData);
|
SendGameList(session.sessionData);
|
||||||
|
// Send new statistics information.
|
||||||
|
boost::shared_ptr<NetPacket> packet(new NetPacketStatisticsChanged);
|
||||||
|
NetPacketStatisticsChanged::Data statData;
|
||||||
|
statData.stats.numberOfPlayersOnServer = m_sessionManager.GetRawSessionCount() + m_gameSessionManager.GetRawSessionCount();
|
||||||
|
try {
|
||||||
|
static_cast<NetPacketStatisticsChanged *>(packet.get())->SetData(statData);
|
||||||
|
|
||||||
|
GetSender().Send(session.sessionData, packet);
|
||||||
|
} catch (const NetException &)
|
||||||
|
{
|
||||||
|
// Ignore errors for now.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user