add a few message packets
This commit is contained in:
		
							parent
							
								
									9f3e165633
								
							
						
					
					
						commit
						012d98cb6e
					
				@ -18,25 +18,89 @@ pub struct PlayerWalking {
 | 
				
			|||||||
    z: f32,
 | 
					    z: f32,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[pso_message(0x42)]
 | 
				
			||||||
 | 
					pub struct PlayerRunning {
 | 
				
			||||||
 | 
					    x: f32,
 | 
				
			||||||
 | 
					    z: f32,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[pso_message(0x3E)]
 | 
				
			||||||
 | 
					pub struct PlayerStopped {
 | 
				
			||||||
 | 
					    unknown1: u32,
 | 
				
			||||||
 | 
					    unknown2: u32,
 | 
				
			||||||
 | 
					    x: f32,
 | 
				
			||||||
 | 
					    y: f32,
 | 
				
			||||||
 | 
					    z: f32,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[pso_message(0x1F)]
 | 
				
			||||||
 | 
					pub struct PlayerChangedMap {
 | 
				
			||||||
 | 
					    unknown1: u32,
 | 
				
			||||||
 | 
					    unknown2: u32,
 | 
				
			||||||
 | 
					    x: f32,
 | 
				
			||||||
 | 
					    y: f32,
 | 
				
			||||||
 | 
					    z: f32,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[pso_message(0x1F)]
 | 
				
			||||||
 | 
					pub struct PlayerChangedMap2 {
 | 
				
			||||||
 | 
					    unknown1: u32,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[pso_message(0x3F)]
 | 
				
			||||||
 | 
					pub struct PlayerLoadedIn {
 | 
				
			||||||
 | 
					    unknown1: u32,
 | 
				
			||||||
 | 
					    unknown2: u32,
 | 
				
			||||||
 | 
					    x: f32,
 | 
				
			||||||
 | 
					    y: f32,
 | 
				
			||||||
 | 
					    z: f32,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[pso_message(0x23)]
 | 
				
			||||||
 | 
					pub struct PlayerDoneChangingMap {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[derive(Debug, Clone, PartialEq)]
 | 
					#[derive(Debug, Clone, PartialEq)]
 | 
				
			||||||
pub enum GameMessage {
 | 
					pub enum GameMessage {
 | 
				
			||||||
    PlayerWalking(PlayerWalking),
 | 
					    PlayerWalking(PlayerWalking),
 | 
				
			||||||
 | 
					    PlayerRunning(PlayerRunning),
 | 
				
			||||||
 | 
					    PlayerStopped(PlayerStopped),
 | 
				
			||||||
 | 
					    PlayerLoadedIn(PlayerLoadedIn),
 | 
				
			||||||
 | 
					    PlayerChangedMap(PlayerChangedMap),
 | 
				
			||||||
 | 
					    PlayerChangedMap2(PlayerChangedMap2),
 | 
				
			||||||
 | 
					    PlayerDoneChangingMap(PlayerDoneChangingMap),
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
impl PSOPacketData for GameMessage {
 | 
					impl PSOPacketData for GameMessage {
 | 
				
			||||||
    fn from_bytes<R: std::io::Read + std::io::Seek>(mut cur: &mut R) -> Result<Self, PacketParseError> {
 | 
					    fn from_bytes<R: std::io::Read + std::io::Seek>(mut cur: &mut R) -> Result<Self, PacketParseError> {
 | 
				
			||||||
        let mut byte = [0u8; 1];
 | 
					        let mut byte = [0u8; 1];
 | 
				
			||||||
 | 
					        let mut len = [0u8; 1];
 | 
				
			||||||
        cur.read(&mut byte);
 | 
					        cur.read(&mut byte);
 | 
				
			||||||
        cur.seek(SeekFrom::Current(-1)); // Cursor doesn't implement Peek?
 | 
					        cur.read(&mut len);
 | 
				
			||||||
 | 
					        cur.seek(SeekFrom::Current(-2)); // Cursor doesn't implement Peek?
 | 
				
			||||||
        match byte[0] {
 | 
					        match byte[0] {
 | 
				
			||||||
            PlayerWalking::CMD => Ok(GameMessage::PlayerWalking(PlayerWalking::from_bytes(&mut cur)?)),
 | 
					            PlayerWalking::CMD => Ok(GameMessage::PlayerWalking(PlayerWalking::from_bytes(&mut cur)?)),
 | 
				
			||||||
 | 
					            PlayerRunning::CMD => Ok(GameMessage::PlayerRunning(PlayerRunning::from_bytes(&mut cur)?)),
 | 
				
			||||||
 | 
					            PlayerStopped::CMD => Ok(GameMessage::PlayerStopped(PlayerStopped::from_bytes(&mut cur)?)),
 | 
				
			||||||
 | 
					            PlayerLoadedIn::CMD => Ok(GameMessage::PlayerLoadedIn(PlayerLoadedIn::from_bytes(&mut cur)?)),
 | 
				
			||||||
 | 
					            PlayerChangedMap::CMD if len[0] == 6 => Ok(GameMessage::PlayerChangedMap(PlayerChangedMap::from_bytes(&mut cur)?)),
 | 
				
			||||||
 | 
					            PlayerChangedMap2::CMD if len[0] == 2 => Ok(GameMessage::PlayerChangedMap2(PlayerChangedMap2::from_bytes(&mut cur)?)),
 | 
				
			||||||
 | 
					            PlayerDoneChangingMap::CMD => Ok(GameMessage::PlayerDoneChangingMap(PlayerDoneChangingMap::from_bytes(&mut cur)?)),
 | 
				
			||||||
            _ => Err(PacketParseError::WrongPacketCommand),
 | 
					            _ => Err(PacketParseError::WrongPacketCommand),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    fn as_bytes(&self) -> Vec<u8> {
 | 
					    fn as_bytes(&self) -> Vec<u8> {
 | 
				
			||||||
        match self {
 | 
					        match self {
 | 
				
			||||||
            GameMessage::PlayerWalking(data) => data.as_bytes(),
 | 
					            GameMessage::PlayerWalking(data) => data.as_bytes(),
 | 
				
			||||||
 | 
					            GameMessage::PlayerRunning(data) => data.as_bytes(),
 | 
				
			||||||
 | 
					            GameMessage::PlayerStopped(data) => data.as_bytes(),
 | 
				
			||||||
 | 
					            GameMessage::PlayerLoadedIn(data) => data.as_bytes(),
 | 
				
			||||||
 | 
					            GameMessage::PlayerChangedMap(data) => data.as_bytes(),
 | 
				
			||||||
 | 
					            GameMessage::PlayerChangedMap2(data) => data.as_bytes(),
 | 
				
			||||||
 | 
					            GameMessage::PlayerDoneChangingMap(data) => data.as_bytes(),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user