summaryrefslogtreecommitdiff
path: root/shared/src/packets.rs
diff options
context:
space:
mode:
Diffstat (limited to 'shared/src/packets.rs')
-rw-r--r--shared/src/packets.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/shared/src/packets.rs b/shared/src/packets.rs
index b979460..021fcd0 100644
--- a/shared/src/packets.rs
+++ b/shared/src/packets.rs
@@ -19,7 +19,7 @@ use crate::{
resources::{Prefab, PrefabIndex},
};
use anyhow::{Result, bail};
-use glam::Vec3A;
+use glam::{Affine3A, Vec3A};
use std::{
fmt::{Debug, Display},
hash::Hash,
@@ -59,7 +59,7 @@ pub enum Packet {
Add(Object, Resource<Prefab>),
Remove(Object),
Position(Object, Vec3A, Vec3A),
- Pose(Object, Vec<f32>),
+ Pose(Object, Vec<(u16, Affine3A)>),
Parent(Object, Object),
Sound(Object, Data),
PrefabIndex(Resource<PrefabIndex>),
@@ -115,6 +115,10 @@ impl Packet {
w.write_all(&[0x06])?;
w.write_all(&object.0.to_le_bytes())?;
w.write_all(&(vec.len() as u16).to_le_bytes())?;
+ for (i, a) in vec {
+ i.write(w)?;
+ a.write(w)?;
+ }
}
Packet::Parent(parent, child) => {
w.write_all(&[0x07])?;
@@ -186,13 +190,13 @@ fn read_u128(r: &mut dyn Read) -> Result<u128> {
Ok(u128::from_le_bytes(buf))
}
-fn read_params(r: &mut dyn Read) -> Result<Vec<f32>> {
+fn read_params(r: &mut dyn Read) -> Result<Vec<(u16, Affine3A)>> {
let mut size = [0; 2];
r.read_exact(&mut size)?;
let size = u16::from_le_bytes(size);
let mut v = Vec::with_capacity(size as usize);
for _ in 0..size {
- v.push(f32::read(r)?);
+ v.push((u16::read(r)?, Affine3A::read(r)?));
}
Ok(v)
}