More preparation towards transferring avatars.
This commit is contained in:
@@ -527,6 +527,13 @@ ClientStateWaitSession::InternalProcess(ClientThread &client, boost::shared_ptr<
|
||||
client.SetSessionEstablished(true);
|
||||
retVal = MSG_SOCK_SESSION_DONE;
|
||||
}
|
||||
else if (packet->ToNetPacketRetrieveAvatar())
|
||||
{
|
||||
NetPacketRetrieveAvatar::Data retrieveAvatarData;
|
||||
packet->ToNetPacketRetrieveAvatar()->GetData(retrieveAvatarData);
|
||||
|
||||
// Before letting us join the lobby, the server requests our avatar.
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ using namespace std;
|
||||
#define NET_TYPE_RETRIEVE_AVATAR 0x0003
|
||||
#define NET_TYPE_AVATAR_HEADER 0x0004
|
||||
#define NET_TYPE_AVATAR_FILE 0x0005
|
||||
#define NET_TYPE_AVATAR_END 0x0006
|
||||
#define NET_TYPE_GAME_LIST_NEW 0x0010
|
||||
#define NET_TYPE_GAME_LIST_UPDATE 0x0011
|
||||
#define NET_TYPE_GAME_LIST_PLAYER_JOINED 0x0012
|
||||
@@ -157,6 +158,12 @@ struct GCC_PACKED NetPacketAvatarFileData
|
||||
u_int32_t requestId;
|
||||
};
|
||||
|
||||
struct GCC_PACKED NetPacketAvatarEndData
|
||||
{
|
||||
NetPacketHeader head;
|
||||
u_int32_t requestId;
|
||||
};
|
||||
|
||||
struct GCC_PACKED GameInfoData
|
||||
{
|
||||
u_int16_t maxNumberOfPlayers;
|
||||
@@ -587,6 +594,9 @@ NetPacket::Create(char *data, unsigned &dataSize)
|
||||
case NET_TYPE_AVATAR_FILE:
|
||||
tmpPacket = boost::shared_ptr<NetPacket>(new NetPacketAvatarFile);
|
||||
break;
|
||||
case NET_TYPE_AVATAR_END:
|
||||
tmpPacket = boost::shared_ptr<NetPacket>(new NetPacketAvatarEnd);
|
||||
break;
|
||||
case NET_TYPE_GAME_LIST_NEW:
|
||||
tmpPacket = boost::shared_ptr<NetPacket>(new NetPacketGameListNew);
|
||||
break;
|
||||
@@ -800,6 +810,12 @@ NetPacket::ToNetPacketAvatarFile() const
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const NetPacketAvatarEnd *
|
||||
NetPacket::ToNetPacketAvatarEnd() const
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const NetPacketGameListNew *
|
||||
NetPacket::ToNetPacketGameListNew() const
|
||||
{
|
||||
@@ -1431,6 +1447,62 @@ NetPacketAvatarFile::InternalCheck(const NetPacketHeader*) const
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
NetPacketAvatarEnd::NetPacketAvatarEnd()
|
||||
: NetPacket(NET_TYPE_AVATAR_END, sizeof(NetPacketAvatarEndData), sizeof(NetPacketAvatarEndData))
|
||||
{
|
||||
}
|
||||
|
||||
NetPacketAvatarEnd::~NetPacketAvatarEnd()
|
||||
{
|
||||
}
|
||||
|
||||
boost::shared_ptr<NetPacket>
|
||||
NetPacketAvatarEnd::Clone() const
|
||||
{
|
||||
boost::shared_ptr<NetPacket> newPacket(new NetPacketAvatarEnd);
|
||||
try
|
||||
{
|
||||
newPacket->SetRawData(GetRawData());
|
||||
} catch (const NetException &)
|
||||
{
|
||||
// Need to return the new packet anyway.
|
||||
}
|
||||
return newPacket;
|
||||
}
|
||||
|
||||
void
|
||||
NetPacketAvatarEnd::SetData(const NetPacketAvatarEnd::Data &inData)
|
||||
{
|
||||
NetPacketAvatarEndData *tmpData = (NetPacketAvatarEndData *)GetRawData();
|
||||
|
||||
tmpData->requestId = htonl(inData.requestId);
|
||||
|
||||
// Check the packet - just in case.
|
||||
Check(GetRawData());
|
||||
}
|
||||
|
||||
void
|
||||
NetPacketAvatarEnd::GetData(NetPacketAvatarEnd::Data &outData) const
|
||||
{
|
||||
NetPacketAvatarEndData *tmpData = (NetPacketAvatarEndData *)GetRawData();
|
||||
|
||||
outData.requestId = ntohl(tmpData->requestId);
|
||||
}
|
||||
|
||||
const NetPacketAvatarEnd *
|
||||
NetPacketAvatarEnd::ToNetPacketAvatarEnd() const
|
||||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
void
|
||||
NetPacketAvatarEnd::InternalCheck(const NetPacketHeader*) const
|
||||
{
|
||||
// Nothing to do.
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
NetPacketGameListNew::NetPacketGameListNew()
|
||||
: NetPacket(NET_TYPE_GAME_LIST_NEW, sizeof(NetPacketGameListNewData), MAX_PACKET_SIZE)
|
||||
{
|
||||
|
||||
@@ -50,6 +50,7 @@ class NetPacketInitAck;
|
||||
class NetPacketRetrieveAvatar;
|
||||
class NetPacketAvatarHeader;
|
||||
class NetPacketAvatarFile;
|
||||
class NetPacketAvatarEnd;
|
||||
class NetPacketGameListNew;
|
||||
class NetPacketGameListUpdate;
|
||||
class NetPacketGameListPlayerJoined;
|
||||
@@ -106,6 +107,7 @@ public:
|
||||
virtual const NetPacketRetrieveAvatar *ToNetPacketRetrieveAvatar() const;
|
||||
virtual const NetPacketAvatarHeader *ToNetPacketAvatarHeader() const;
|
||||
virtual const NetPacketAvatarFile *ToNetPacketAvatarFile() const;
|
||||
virtual const NetPacketAvatarEnd *ToNetPacketAvatarEnd() const;
|
||||
virtual const NetPacketGameListNew *ToNetPacketGameListNew() const;
|
||||
virtual const NetPacketGameListUpdate *ToNetPacketGameListUpdate() const;
|
||||
virtual const NetPacketGameListPlayerJoined *ToNetPacketGameListPlayerJoined() const;
|
||||
@@ -281,6 +283,29 @@ protected:
|
||||
virtual void InternalCheck(const NetPacketHeader* data) const;
|
||||
};
|
||||
|
||||
class NetPacketAvatarEnd : public NetPacket
|
||||
{
|
||||
public:
|
||||
struct Data
|
||||
{
|
||||
u_int32_t requestId;
|
||||
};
|
||||
|
||||
NetPacketAvatarEnd();
|
||||
virtual ~NetPacketAvatarEnd();
|
||||
|
||||
virtual boost::shared_ptr<NetPacket> Clone() const;
|
||||
|
||||
void SetData(const Data &inData);
|
||||
void GetData(Data &outData) const;
|
||||
|
||||
virtual const NetPacketAvatarEnd *ToNetPacketAvatarEnd() const;
|
||||
|
||||
protected:
|
||||
|
||||
virtual void InternalCheck(const NetPacketHeader* data) const;
|
||||
};
|
||||
|
||||
class NetPacketGameListNew : public NetPacket
|
||||
{
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user