Made it easier to maintain changes in packet header, prepared for reliable UDP packets.

This commit is contained in:
Jocke
2016-03-08 14:44:35 +01:00
parent 9cbc582be2
commit 3828616b60
9 changed files with 91 additions and 56 deletions
+1
View File
@@ -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);
+12 -4
View File
@@ -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
+1
View File
@@ -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();
+3 -2
View File
@@ -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