diff options
| author | hovertank3d <[email protected]> | 2026-02-23 23:17:56 +0100 |
|---|---|---|
| committer | hovertank3d <[email protected]> | 2026-02-23 23:38:17 +0100 |
| commit | 30eb23ffe5f7b9e8c3b4267457d0aa3bd02665e7 (patch) | |
| tree | 1c09155c7684564f4f642081f6255c76822eda9d /include | |
| parent | ce7c377dd839fd8af71dfe505d930884e6fb0e2e (diff) | |
| download | ogurec-30eb23ffe5f7b9e8c3b4267457d0aa3bd02665e7.tar.gz ogurec-30eb23ffe5f7b9e8c3b4267457d0aa3bd02665e7.zip | |
implement `connect`, `disconnect` and `accept`
Diffstat (limited to 'include')
| -rw-r--r-- | include/net/types.hpp | 21 | ||||
| -rw-r--r-- | include/util/io.hpp | 9 |
2 files changed, 25 insertions, 5 deletions
diff --git a/include/net/types.hpp b/include/net/types.hpp index b9453d6..5301021 100644 --- a/include/net/types.hpp +++ b/include/net/types.hpp @@ -72,6 +72,25 @@ struct vec2 { T y; }; +// NetMessages + +struct connect { + static constexpr uint8_t packet_id = 1; + + std::string version; +}; + +struct disconnect { + static constexpr uint8_t packet_id = 2; + + nstring reason; +}; + +struct accept { + uint8_t slot; + uint8_t server_flags = 0; +}; + inline nstring operator""_ns(const char* str, std::size_t) { return nstring{nstring::Literal, str}; @@ -79,3 +98,5 @@ inline nstring operator""_ns(const char* str, std::size_t) } } + +using net::packet::operator""_ns; diff --git a/include/util/io.hpp b/include/util/io.hpp index 629bf59..9131a96 100644 --- a/include/util/io.hpp +++ b/include/util/io.hpp @@ -16,11 +16,11 @@ namespace io { template <class T, class K> -concept custom_write = requires(T t) { - { t.write(K()) } -> std::same_as<ssize_t>; +concept custom_write = requires(T t, K &k) { + { t.write(k) } -> std::same_as<ssize_t>; }; template <class T, class K> -concept custom_read = requires(T& t, K& k) { +concept custom_read = requires(T& t, K &k) { { t.read(k) } -> std::same_as<ssize_t>; }; @@ -108,7 +108,6 @@ public: template <class I> class serialized_io { I io; - public: serialized_io(I io) : io(io) @@ -193,7 +192,7 @@ public: } template <custom_write<serialized_io<I>> T> - ssize_t write(T& f) + ssize_t write(T f) { return f.write(*this); } |
