From 37dcc9444a59560c628b8d292474eea5c91e78d6 Mon Sep 17 00:00:00 2001 From: Insineer Date: Sat, 21 Sep 2019 04:46:57 +0300 Subject: [PATCH] feat(protocol): add Spawn Window related serializables --- .../Sources/Shared/Network/ISerializable.cpp | 4 ++++ .../Network/Protocol/ClientToServer/Commands.h | 18 ++++++++++++++++++ .../Network/Protocol/ServerToClient/Commands.h | 11 +++++++++++ .../Protocol/ServerToClient/WorldInfo.h | 17 +++++++++++++++++ 4 files changed, 50 insertions(+) diff --git a/SharedLibrary/Sources/Shared/Network/ISerializable.cpp b/SharedLibrary/Sources/Shared/Network/ISerializable.cpp index 5053c6d..0f688e5 100644 --- a/SharedLibrary/Sources/Shared/Network/ISerializable.cpp +++ b/SharedLibrary/Sources/Shared/Network/ISerializable.cpp @@ -34,6 +34,8 @@ std::unique_ptr CreateSerializableById(uint32_t id) { DECLARE_SER(SendChatMessageCommand) DECLARE_SER(UIInputCommand) DECLARE_SER(UITriggerCommand) + DECLARE_SER(SpawnWindowSearchCommand) + DECLARE_SER(SpawnWindowSpawnCommand) DECLARE_SER(CallVerbCommand) DECLARE_SER(DisconnectionCommand) } @@ -51,6 +53,8 @@ std::unique_ptr CreateSerializableById(uint32_t id) { DECLARE_SER(OverlayUpdateCommand) DECLARE_SER(OverlayResetCommand) DECLARE_SER(OpenWindowCommand) + DECLARE_SER(OpenSpawnWindowCommand) + DECLARE_SER(UpdateSpawnWindowCommand) DECLARE_SER(UpdateWindowCommand) DECLARE_SER(AddChatMessageCommand) } diff --git a/SharedLibrary/Sources/Shared/Network/Protocol/ClientToServer/Commands.h b/SharedLibrary/Sources/Shared/Network/Protocol/ClientToServer/Commands.h index 32dad76..aa96e91 100644 --- a/SharedLibrary/Sources/Shared/Network/Protocol/ClientToServer/Commands.h +++ b/SharedLibrary/Sources/Shared/Network/Protocol/ClientToServer/Commands.h @@ -110,6 +110,24 @@ DEFINE_SERIALIZABLE(UITriggerCommand, Command) } DEFINE_SERIALIZABLE_END +DEFINE_SERIALIZABLE(SpawnWindowSearchCommand, Command) + std::string searchBuffer; + + void Serialize(uf::Archive &ar) override { + Command::Serialize(ar); + ar & searchBuffer; + } +DEFINE_SERIALIZABLE_END + +DEFINE_SERIALIZABLE(SpawnWindowSpawnCommand, Command) + std::string typeKey; + + void Serialize(uf::Archive &ar) override { + Command::Serialize(ar); + ar & typeKey; + } +DEFINE_SERIALIZABLE_END + DEFINE_SERIALIZABLE(CallVerbCommand, Command) std::string verb; diff --git a/SharedLibrary/Sources/Shared/Network/Protocol/ServerToClient/Commands.h b/SharedLibrary/Sources/Shared/Network/Protocol/ServerToClient/Commands.h index 82a9a0c..ea034f3 100644 --- a/SharedLibrary/Sources/Shared/Network/Protocol/ServerToClient/Commands.h +++ b/SharedLibrary/Sources/Shared/Network/Protocol/ServerToClient/Commands.h @@ -110,6 +110,17 @@ DEFINE_SERIALIZABLE(UpdateWindowCommand, Command) } DEFINE_SERIALIZABLE_END +DEFINE_PURE_SERIALIZABLE(OpenSpawnWindowCommand, Command) + +DEFINE_SERIALIZABLE(UpdateSpawnWindowCommand, Command) + std::vector types; + + void Serialize(uf::Archive &ar) override { + uf::ISerializable::Serialize(ar); + ar & types; + } +DEFINE_SERIALIZABLE_END + DEFINE_SERIALIZABLE(AddChatMessageCommand, Command) std::string message; diff --git a/SharedLibrary/Sources/Shared/Network/Protocol/ServerToClient/WorldInfo.h b/SharedLibrary/Sources/Shared/Network/Protocol/ServerToClient/WorldInfo.h index f0aa032..fddbaba 100644 --- a/SharedLibrary/Sources/Shared/Network/Protocol/ServerToClient/WorldInfo.h +++ b/SharedLibrary/Sources/Shared/Network/Protocol/ServerToClient/WorldInfo.h @@ -9,6 +9,23 @@ namespace network { namespace protocol { +DEFINE_SERIALIZABLE(ObjectType, uf::ISerializable) + std::string typeKey; + std::string typeName; + std::string name; + uint32_t sprite; + std::string description; + + void Serialize(uf::Archive &ar) override { + uf::ISerializable::Serialize(ar); + ar & typeKey; + ar & typeName; + ar & name; + ar & sprite; + ar & description; + } +DEFINE_SERIALIZABLE_END + DEFINE_SERIALIZABLE(ObjectInfo, uf::ISerializable) uint32_t id; std::string name;