Made it easier to maintain changes in packet header, prepared for reliable UDP packets.
This commit is contained in:
@@ -119,6 +119,7 @@ private:
|
||||
void sendLocalPlayerTransform();
|
||||
void becomePlayer();
|
||||
void displayServerlist();
|
||||
void popNetworkSegmentOfHeader(Packet& packet);
|
||||
// Mapping Logic
|
||||
// Returns if local EntityID exist in map
|
||||
bool clientServerMapsHasEntity(EntityID clientEntityID);
|
||||
|
||||
@@ -17,7 +17,8 @@ public:
|
||||
Packet(MessageType type);
|
||||
~Packet();
|
||||
void Init(MessageType type, unsigned int& packetID,
|
||||
int sequenceNumber, int totalAmountOfPackets);
|
||||
int sequenceNumber, int totalAmountOfPackets,
|
||||
int packetGroup);
|
||||
|
||||
// Add primitive types like int, float, char...
|
||||
template<typename T>
|
||||
@@ -65,9 +66,9 @@ public:
|
||||
size_t DataReadSize() { return m_ReturnDataOffset; }
|
||||
size_t MaxSize() { return m_MaxPacketSize; }
|
||||
size_t HeaderSize() { return m_HeaderSize; }
|
||||
size_t SequenceNumber();
|
||||
size_t SequenceLength();
|
||||
|
||||
size_t GroupIndex();
|
||||
size_t GroupSize();
|
||||
size_t PacketID();
|
||||
private:
|
||||
char* m_Data;
|
||||
size_t m_ReturnDataOffset = 0;
|
||||
@@ -76,6 +77,13 @@ private:
|
||||
size_t m_HeaderSize = 0;
|
||||
void resizeData();
|
||||
void resizeData(int size);
|
||||
|
||||
size_t packetSizeOffset = 0;
|
||||
size_t groupOffset = 0;
|
||||
size_t groupIndexOffset = 0;
|
||||
size_t groupSizeOffset = 0;
|
||||
size_t messageTypeOffset = 0;
|
||||
size_t packetIDOffset = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -82,6 +82,7 @@ private:
|
||||
void kick(PlayerID player);
|
||||
PlayerID getPlayerIDFromEndpoint();
|
||||
PlayerID getPlayerIDFromEntityID(EntityID entityID);
|
||||
void popNetworkSegmentOfHeader(Packet & packet);
|
||||
void parsePlayerTransform(Packet& packet);
|
||||
void parseOnInputCommand(Packet& packet);
|
||||
void parseClientPing();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#ifndef UDPClient_h__
|
||||
#define UDPClient_h__
|
||||
#include <unordered_map>
|
||||
#include <map>
|
||||
|
||||
#include <boost/asio.hpp>
|
||||
#include "Network/NetworkClient.h"
|
||||
@@ -25,7 +25,8 @@ private:
|
||||
boost::shared_ptr<boost::asio::ip::udp::socket> m_Socket;
|
||||
int readBuffer();
|
||||
PacketID m_SendPacketID = 0;
|
||||
std::unordered_map<unsigned int, boost::shared_ptr<char>> packetSegmentMap;
|
||||
//map:(packetGroup, vector:(pair:(groupIndex, packetData)))
|
||||
std::map<unsigned int, std::vector<std::pair<unsigned int, boost::shared_ptr<char>>>> packetSegmentMap;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user