From 503d6ae839c89d7fc481492dd7d2cbe1d39086eb Mon Sep 17 00:00:00 2001 From: hovertank3d Date: Thu, 26 Feb 2026 16:31:25 +0100 Subject: implement `player_inventory_slot` --- include/net/types.hpp | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/net/types.hpp b/include/net/types.hpp index c16ca36..b565f51 100644 --- a/include/net/types.hpp +++ b/include/net/types.hpp @@ -7,6 +7,7 @@ #include #include "util/io.hpp" +#include "util/bitset.hpp" namespace net { namespace packet { @@ -96,8 +97,42 @@ struct accept { struct player_info { static constexpr uint8_t packet_id = 4; - uint8_t slot; - uint8_t server_flags = 0; + uint8_t slot; + uint8_t skin_variant; + uint8_t voice_variant; + float voice_offset; + uint8_t hair; + std::string name; + uint8_t hair_dye; + bitset<16> hidden_accessories; // FIXME: this is rounded number of flags. Terraria may use less than 16 + bitset<8> hide_misc; // same here + rgb hair_color; + rgb skin_color; + rgb eye_color; + rgb shirt_color; + rgb undershirt_color; + rgb pants_color; + rgb shoe_color; + bitset<4> player_difficulty; + bitset<5> permanent_buffs; + bitset<7> permanent_buffs_shimmer; +}; + +struct player_inventory_slot { + static constexpr uint8_t packet_id = 5; + + enum class slot_flags : int { + Favourite = 0, + BlockTransfer = 1, + }; + + uint8_t slot; + uint16_t item_slot_id; + + uint16_t stack; + uint8_t prefix; + uint16_t type; + bitset<2> flags; }; inline nstring operator""_ns(const char* str, std::size_t) -- cgit v1.2.3