diff --git a/src/character/character.rs b/src/character/character.rs index 1b0f88b..60b6c61 100644 --- a/src/character/character.rs +++ b/src/character/character.rs @@ -138,7 +138,7 @@ impl std::default::Default for Character { } } -#[derive(Copy, Clone, Debug, PartialEq, Default)] +#[derive(Copy, Clone, PSOPacketData, Default)] #[repr(C)] pub struct SelectScreenCharacter { pub exp: u32, @@ -169,20 +169,6 @@ pub struct SelectScreenCharacter { } impl SelectScreenCharacter { - pub const SIZE: usize = 0x7C; - - pub fn from_le_bytes(bytes: [u8; 0x7C]) -> Result { - unsafe { - Ok(std::mem::transmute(bytes)) - } - } - - pub fn to_le_bytes(&self) -> [u8; 0x7C] { - unsafe { - std::mem::transmute(*self) - } - } - pub fn as_character(&self) -> Character { Character { exp: self.exp, diff --git a/src/packet/login.rs b/src/packet/login.rs index f8404ad..b43a47c 100644 --- a/src/packet/login.rs +++ b/src/packet/login.rs @@ -292,18 +292,6 @@ pub struct CharAck { pub code: u32, // TODO: enum? } -impl PSOPacketData for SelectScreenCharacter { - fn from_bytes(cursor: &mut R) -> Result { - let mut buf = [0u8; SelectScreenCharacter::SIZE]; - cursor.read(&mut buf).map_err(|_| PacketParseError::ReadError)?; - SelectScreenCharacter::from_le_bytes(buf) - } - - fn as_bytes(&self) -> Vec { - self.to_le_bytes().to_vec() - } -} - #[pso_packet(0xE5)] pub struct CharacterPreview { pub slot: u32,