From d279baccdbaf37ae4410af1875e98597fe0b5565 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 3 Jun 2025 20:24:20 +0200 Subject: use multiple ints for characters; close #294 --- server/protocol/src/lib.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'server/protocol/src/lib.rs') 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 { -- cgit v1.2.3-70-g09d2