#pragma once #include namespace Packet { enum class Opcode : std::uint16_t { NOP, SPAWNMODEL, DESPAWNMODEL, UPDATEMODEL, REQUESTMODELIDLIST, CLIENTID, COUNT }; struct Header { Opcode opcode; std::uint32_t body_length; std::vector Serialize() { std::vector serialize(6); ::memcpy(serialize.data(), &opcode, 2); ::memcpy(serialize.data() + 2, &body_length, 4); return serialize; } void Deserialize(std::vector& data) { ::memcpy(&opcode, data.data(), 2); ::memcpy(&body_length, data.data() + 2, 4); } }; } // namespace Packet