66 lines
1.7 KiB
C++
66 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#include <td/protocol/packet/PacketData.h>
|
|
|
|
namespace sp {
|
|
|
|
class DataBuffer;
|
|
|
|
// temp
|
|
template <>
|
|
void ReadMessage(DataBuffer& a_Buffer, td::protocol::pdata::PredictCommand& a_Header);
|
|
|
|
template <>
|
|
DataBuffer WriteMessage(const td::protocol::pdata::PredictCommand& a_Header);
|
|
|
|
} // namespace sp
|
|
|
|
|
|
namespace td {
|
|
|
|
template <typename T>
|
|
sp::DataBuffer& operator<<(sp::DataBuffer& a_Buffer, const Vec2<T>& a_Vec) {
|
|
return a_Buffer << a_Vec.x << a_Vec.y;
|
|
}
|
|
|
|
template <typename T>
|
|
sp::DataBuffer& operator>>(sp::DataBuffer& a_Buffer, Vec2<T>& a_Vec) {
|
|
return a_Buffer >> a_Vec.x >> a_Vec.y;
|
|
}
|
|
|
|
template <typename T>
|
|
sp::DataBuffer& operator<<(sp::DataBuffer& a_Buffer, const Vec3<T>& a_Vec) {
|
|
return a_Buffer << a_Vec.x << a_Vec.y << a_Vec.z;
|
|
}
|
|
|
|
template <typename T>
|
|
sp::DataBuffer& operator>>(sp::DataBuffer& a_Buffer, Vec3<T>& a_Vec) {
|
|
return a_Buffer >> a_Vec.x >> a_Vec.y >> a_Vec.z;
|
|
}
|
|
|
|
|
|
template <typename T>
|
|
sp::DataBuffer& operator<<(sp::DataBuffer& a_Buffer, const Vec4<T>& a_Vec) {
|
|
return a_Buffer << a_Vec.x << a_Vec.y << a_Vec.z << a_Vec.w;
|
|
}
|
|
|
|
template <typename T>
|
|
sp::DataBuffer& operator>>(sp::DataBuffer& a_Buffer, Vec4<T>& a_Vec) {
|
|
return a_Buffer >> a_Vec.x >> a_Vec.y >> a_Vec.z >> a_Vec.w;
|
|
}
|
|
|
|
|
|
namespace game {
|
|
|
|
sp::DataBuffer& operator<<(sp::DataBuffer& a_Buffer, const TeamCastle& a_Castle);
|
|
sp::DataBuffer& operator>>(sp::DataBuffer& a_Buffer, TeamCastle& a_Castle);
|
|
|
|
sp::DataBuffer& operator<<(sp::DataBuffer& a_Buffer, const ChunkPtr& a_Chunk);
|
|
sp::DataBuffer& operator>>(sp::DataBuffer& a_Buffer, ChunkPtr& a_Chunk);
|
|
|
|
sp::DataBuffer& operator<<(sp::DataBuffer& buffer, const TilePtr& tile);
|
|
sp::DataBuffer& operator>>(sp::DataBuffer& buffer, TilePtr& tile);
|
|
|
|
} // namespace game
|
|
} // namespace td
|