38 lines
746 B
Rust
38 lines
746 B
Rust
use super::integer::Time;
|
|
|
|
#[binrw::binrw]
|
|
#[brw(little)]
|
|
pub enum EncodedMouseDelta{
|
|
//X did not move Y has 1 byte, time has 2 bytes
|
|
X0Y1T2{
|
|
y:i8,
|
|
t:u16,
|
|
},
|
|
X1Y1T2
|
|
}
|
|
///TODO: delta delta encoding lol
|
|
|
|
#[binrw::binrw]
|
|
#[brw(little)]
|
|
pub struct MouseState{
|
|
pub pos:[i32;2],
|
|
pub time:Time,
|
|
}
|
|
|
|
impl Into<strafesnet_common::mouse::MouseState> for MouseState{
|
|
fn into(self)->strafesnet_common::mouse::MouseState{
|
|
strafesnet_common::mouse::MouseState{
|
|
pos:self.pos.into(),
|
|
time:strafesnet_common::integer::Time::raw(self.time),
|
|
}
|
|
}
|
|
}
|
|
impl From<strafesnet_common::mouse::MouseState> for MouseState{
|
|
fn from(value:strafesnet_common::mouse::MouseState)->Self{
|
|
Self{
|
|
pos:value.pos.to_array(),
|
|
time:value.time.get(),
|
|
}
|
|
}
|
|
}
|