aboutsummaryrefslogtreecommitdiff
path: root/server/protocol/src
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-06-03 20:24:20 +0200
committermetamuffin <metamuffin@disroot.org>2025-06-03 20:24:20 +0200
commitd279baccdbaf37ae4410af1875e98597fe0b5565 (patch)
treee42320d5c0433a6b0415305da0520dc035553cef /server/protocol/src
parentdb4587d3ec64b7e28691b43f9d9701939eed94d1 (diff)
downloadhurrycurry-d279baccdbaf37ae4410af1875e98597fe0b5565.tar
hurrycurry-d279baccdbaf37ae4410af1875e98597fe0b5565.tar.bz2
hurrycurry-d279baccdbaf37ae4410af1875e98597fe0b5565.tar.zst
use multiple ints for characters; close #294
Diffstat (limited to 'server/protocol/src')
-rw-r--r--server/protocol/src/lib.rs15
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 {