fix: 32 bit protocol
This commit is contained in:
@@ -8,7 +8,7 @@ namespace utils {
|
|||||||
|
|
||||||
DataBuffer Compress(const DataBuffer& buffer);
|
DataBuffer Compress(const DataBuffer& buffer);
|
||||||
DataBuffer Decompress(DataBuffer& buffer);
|
DataBuffer Decompress(DataBuffer& buffer);
|
||||||
DataBuffer Decompress(DataBuffer& buffer, std::size_t packetLength);
|
DataBuffer Decompress(DataBuffer& buffer, std::uint64_t packetLength);
|
||||||
|
|
||||||
} // namespace utils
|
} // namespace utils
|
||||||
} // namespace td
|
} // namespace td
|
||||||
|
|||||||
@@ -33,9 +33,9 @@ bool Connexion::updateSocket(){
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
DataBuffer buffer;
|
DataBuffer buffer;
|
||||||
m_Socket.Receive(buffer, sizeof(std::size_t));
|
m_Socket.Receive(buffer, sizeof(std::uint64_t));
|
||||||
if (buffer.GetSize() > 0){
|
if (buffer.GetSize() > 0){
|
||||||
std::size_t packetLenght;
|
std::uint64_t packetLenght;
|
||||||
buffer >> packetLenght;
|
buffer >> packetLenght;
|
||||||
|
|
||||||
m_Socket.Receive(buffer, packetLenght);
|
m_Socket.Receive(buffer, packetLenght);
|
||||||
|
|||||||
@@ -49,12 +49,12 @@ DataBuffer Compress(const DataBuffer& buffer) {
|
|||||||
return packet;
|
return packet;
|
||||||
}
|
}
|
||||||
|
|
||||||
DataBuffer Decompress(DataBuffer& buffer, std::size_t packetLength){
|
DataBuffer Decompress(DataBuffer& buffer, std::uint64_t packetLength){
|
||||||
std::uint64_t uncompressedLength;
|
std::uint64_t uncompressedLength;
|
||||||
|
|
||||||
buffer >> uncompressedLength;
|
buffer >> uncompressedLength;
|
||||||
|
|
||||||
std::size_t compressedLength = packetLength - sizeof(uncompressedLength);
|
std::uint64_t compressedLength = packetLength - sizeof(uncompressedLength);
|
||||||
|
|
||||||
if (uncompressedLength == 0) {
|
if (uncompressedLength == 0) {
|
||||||
// Uncompressed
|
// Uncompressed
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ void initRandomizer(){
|
|||||||
srand(time(0));
|
srand(time(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
std::uint64_t getRandomNumber(std::size_t max){
|
std::uint64_t getRandomNumber(std::uint64_t max){
|
||||||
return rand() % max;
|
return rand() % max;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ void WorldBeginDataPacket::Deserialize(DataBuffer& data){
|
|||||||
data >> m_RedSpawn >> m_RedTower;
|
data >> m_RedSpawn >> m_RedTower;
|
||||||
data >> m_BlueSpawn >> m_BlueTower;
|
data >> m_BlueSpawn >> m_BlueTower;
|
||||||
|
|
||||||
std::size_t tilePaletteSize;
|
std::uint64_t tilePaletteSize;
|
||||||
data >> tilePaletteSize;
|
data >> tilePaletteSize;
|
||||||
|
|
||||||
m_TilePalette.reserve(tilePaletteSize);
|
m_TilePalette.reserve(tilePaletteSize);
|
||||||
@@ -145,7 +145,7 @@ DataBuffer WorldDataPacket::Serialize() const{
|
|||||||
game::ChunkCoord coords = pair.first;
|
game::ChunkCoord coords = pair.first;
|
||||||
game::ChunkPtr chunk = pair.second;
|
game::ChunkPtr chunk = pair.second;
|
||||||
|
|
||||||
data << coords.first << coords.second << chunk->palette.size();
|
data << coords.first << coords.second << (std::uint64_t) chunk->palette.size();
|
||||||
|
|
||||||
std::size_t bufferSize = data.GetSize();
|
std::size_t bufferSize = data.GetSize();
|
||||||
data.Resize(data.GetSize() + chunk->palette.size() * sizeof(game::ChunkPalette::value_type));
|
data.Resize(data.GetSize() + chunk->palette.size() * sizeof(game::ChunkPalette::value_type));
|
||||||
@@ -182,7 +182,7 @@ DataBuffer WorldDataPacket::Serialize() const{
|
|||||||
}
|
}
|
||||||
|
|
||||||
void WorldDataPacket::Deserialize(DataBuffer& data){
|
void WorldDataPacket::Deserialize(DataBuffer& data){
|
||||||
std::size_t chunkCount;
|
std::uint64_t chunkCount;
|
||||||
data >> chunkCount;
|
data >> chunkCount;
|
||||||
|
|
||||||
for (int chunkNumber = 0; chunkNumber < chunkCount; chunkNumber++){
|
for (int chunkNumber = 0; chunkNumber < chunkCount; chunkNumber++){
|
||||||
@@ -191,7 +191,7 @@ void WorldDataPacket::Deserialize(DataBuffer& data){
|
|||||||
game::ChunkCoord::first_type chunkX, chunkY;
|
game::ChunkCoord::first_type chunkX, chunkY;
|
||||||
data >> chunkX >> chunkY;
|
data >> chunkX >> chunkY;
|
||||||
|
|
||||||
std::size_t chunkPaletteSize;
|
std::uint64_t chunkPaletteSize;
|
||||||
data >> chunkPaletteSize;
|
data >> chunkPaletteSize;
|
||||||
|
|
||||||
game::ChunkPalette chunkPalette(chunkPaletteSize);
|
game::ChunkPalette chunkPalette(chunkPaletteSize);
|
||||||
|
|||||||
Reference in New Issue
Block a user