Redone network packet abstraction. Prepared for easy access to packet data.

This commit is contained in:
lotodore
2007-04-08 16:18:20 +00:00
parent 6f458ec012
commit 2f5c8d7da1
14 changed files with 656 additions and 230 deletions
+12 -3
View File
@@ -320,8 +320,17 @@ ClientStateStartSession::~ClientStateStartSession()
int
ClientStateStartSession::Process(ClientThread &client)
{
boost::shared_ptr<NetPacket> packet(new NetPacketInit(10));
client.GetSender().Send(packet, client.GetContext().GetSocket());
ClientContext &context = client.GetContext();
NetPacketJoinGame::Data initData;
initData.password = context.GetPassword();
initData.playerName = context.GetPlayerName();
initData.ptype = PLAYER_TYPE_HUMAN; // TODO
boost::shared_ptr<NetPacket> packet(new NetPacketJoinGame);
((NetPacketJoinGame *)packet.get())->SetData(initData);
client.GetSender().Send(packet, context.GetSocket());
client.SetState(ClientStateWaitSession::Instance());
@@ -355,7 +364,7 @@ ClientStateWaitSession::Process(ClientThread &client)
boost::shared_ptr<NetPacket> tmpPacket = client.GetReceiver().Recv(context.GetSocket());
if (tmpPacket.get() && tmpPacket->ToNetPacketInitAck())
if (tmpPacket.get() && tmpPacket->ToNetPacketJoinGameAck())
{
client.SetState(ClientStateWaitGame::Instance());
retVal = MSG_SOCK_SESSION_DONE;