Next steps for invitation system.

This commit is contained in:
lotodore
2010-03-30 13:02:43 +00:00
parent 0925b2d747
commit a01741846a
5 changed files with 38 additions and 5 deletions
+16
View File
@@ -1486,6 +1486,22 @@ ClientStateWaitGame::InternalHandlePacket(boost::shared_ptr<ClientThread> client
client->AddPlayerData(playerData);
}
}
else if (tmpPacket->GetMsg()->present == PokerTHMessage_PR_inviteNotifyMessage)
{
InviteNotifyMessage_t *netInvNotify = &tmpPacket->GetMsg()->choice.inviteNotifyMessage;
client->GetCallback()->SignalPlayerGameInvitation(
netInvNotify->gameId,
netInvNotify->playerIdWho,
netInvNotify->playerIdByWhom);
}
else if (tmpPacket->GetMsg()->present == PokerTHMessage_PR_rejectInvNotifyMessage)
{
RejectInvNotifyMessage_t *netRejNotify = &tmpPacket->GetMsg()->choice.rejectInvNotifyMessage;
client->GetCallback()->SignalPlayerGameInvitation(
netRejNotify->gameId,
netRejNotify->playerId,
static_cast<DenyGameInvitationReason>(netRejNotify->playerRejectReason));
}
}
//-----------------------------------------------------------------------------
+13 -1
View File
@@ -475,8 +475,20 @@ ServerGameStateInit::InternalProcessPacket(boost::shared_ptr<ServerGame> server,
netInvNotif->playerIdByWhom = session.playerData->GetUniqueId();
netInvNotif->playerIdWho = netInvite->playerId;
server->GetLobbyThread().SendToLobbyPlayer(netInvite->playerId, packet);
bool requestSent = server->GetLobbyThread().SendToLobbyPlayer(netInvite->playerId, packet);
server->SendToAllPlayers(packet, SessionData::Game);
if (!requestSent)
{
// Player is not in lobby - send reject message.
boost::shared_ptr<NetPacket> p2(new NetPacket(NetPacket::Alloc));
p2->GetMsg()->present = PokerTHMessage_PR_rejectInvNotifyMessage;
RejectInvNotifyMessage_t *netRejNotif = &p2->GetMsg()->choice.rejectInvNotifyMessage;
netRejNotif->gameId = netInvite->gameId;
netRejNotif->playerId = netInvite->playerId;
netRejNotif->playerRejectReason = RejectGameInvReason_busy;
server->SendToAllPlayers(p2, SessionData::Game);
}
}
}
else if (packet->GetMsg()->present == PokerTHMessage_PR_resetTimeoutMessage)
+7 -2
View File
@@ -564,14 +564,19 @@ ServerLobbyThread::RemoveComputerPlayer(boost::shared_ptr<PlayerData> player)
m_computerPlayers.erase(player->GetUniqueId());
}
void
bool
ServerLobbyThread::SendToLobbyPlayer(unsigned playerId, boost::shared_ptr<NetPacket> packet)
{
bool retVal = false;
SessionWrapper tmpSession = m_sessionManager.GetSessionByUniquePlayerId(playerId);
if (tmpSession.sessionData)
{
GetSender().Send(tmpSession.sessionData, packet);
retVal = true;
}
return retVal;
}
AvatarManager &
ServerLobbyThread::GetAvatarManager()
{
+1 -1
View File
@@ -90,7 +90,7 @@ public:
void AddComputerPlayer(boost::shared_ptr<PlayerData> player);
void RemoveComputerPlayer(boost::shared_ptr<PlayerData> player);
void SendToLobbyPlayer(unsigned playerId, boost::shared_ptr<NetPacket> packet);
bool SendToLobbyPlayer(unsigned playerId, boost::shared_ptr<NetPacket> packet);
u_int32_t GetNextUniquePlayerId();
u_int32_t GetNextGameId();