diff options
author | metamuffin <metamuffin@disroot.org> | 2025-06-03 20:24:20 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-06-03 20:24:20 +0200 |
commit | d279baccdbaf37ae4410af1875e98597fe0b5565 (patch) | |
tree | e42320d5c0433a6b0415305da0520dc035553cef /server/protocol/src/lib.rs | |
parent | db4587d3ec64b7e28691b43f9d9701939eed94d1 (diff) | |
download | hurrycurry-d279baccdbaf37ae4410af1875e98597fe0b5565.tar hurrycurry-d279baccdbaf37ae4410af1875e98597fe0b5565.tar.bz2 hurrycurry-d279baccdbaf37ae4410af1875e98597fe0b5565.tar.zst |
use multiple ints for characters; close #294
Diffstat (limited to 'server/protocol/src/lib.rs')
-rw-r--r-- | server/protocol/src/lib.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/server/protocol/src/lib.rs b/server/protocol/src/lib.rs index db65ddd2..ef28dcca 100644 --- a/server/protocol/src/lib.rs +++ b/server/protocol/src/lib.rs @@ -110,8 +110,7 @@ pub struct Gamedata { pub enum PacketS { Join { name: String, - #[serde(deserialize_with = "deser_i32")] - character: i32, + character: Character, #[serde(default = "chef_class")] class: PlayerClass, #[serde(skip)] // TODO fix bincode can still set id @@ -174,6 +173,16 @@ pub enum PacketS { }, } +#[derive(Debug, Default, Clone, Copy, Serialize, Deserialize, Encode, Decode)] +pub struct Character { + #[serde(deserialize_with = "deser_i32", default)] + pub color: i32, + #[serde(deserialize_with = "deser_i32", default)] + pub hairstyle: i32, + #[serde(deserialize_with = "deser_i32", default)] + pub headwear: i32, +} + fn chef_class() -> PlayerClass { PlayerClass::Chef } @@ -219,7 +228,7 @@ pub enum PacketC { #[bincode(with_serde)] position: Vec2, class: PlayerClass, - character: i32, + character: Character, name: String, }, RemovePlayer { |