16#include "System/json.h"
27#define MSG_CLONE(MessageClass) auto clone() const -> std::unique_ptr<Message> override \
29 return std::make_unique<MessageClass>(*this); \
46 return std::make_unique<Message>(*
this);
51 virtual auto load(
const Stream& stream) -> void;
52 virtual auto save(
Stream& stream)
const -> void;
65 return dynamic_cast<const T*
>(
this);
sys::Json Stream
Definition AudioObject.h:20
system for managing lua, and how the lua state interacts with scripts
the type of elements in a basic_json container
Definition GameObject.h:37
auto convertTo() const -> const T *
A function that converts messages to the specific type so you don't need to call static_cast yourself...
Definition Message.h:63
virtual auto save(Stream &stream) const -> void
Definition Message.cpp:28
virtual auto clone() const -> std::unique_ptr< Message >
Definition Message.h:44
Message(Message &&other) noexcept=default
virtual ~Message()=default
virtual auto load(const Stream &stream) -> void
Definition Message.cpp:23
Message(const Message &other)=default
auto operator=(const Message &other) -> Message &=default
auto operator=(Message &&other) noexcept -> Message &=default
static auto bindLuaTypes(sol::state &lua) -> void
Definition Message.cpp:18