|
@ -708,21 +708,37 @@ pub struct PhotonChairMove { |
|
|
unknown1: u32,
|
|
|
unknown1: u32,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
//#[pso_message(0xB5)]
|
|
|
|
|
|
//pub struct ShopRequest {
|
|
|
|
|
|
// unknown1: u16,
|
|
|
|
|
|
// shop_type: u8,
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
#[pso_message(0xB5)]
|
|
|
|
|
|
pub struct ShopRequest {
|
|
|
|
|
|
shop_type: u8,
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
//#[pso_message(0xB7)]
|
|
|
|
|
|
//pub struct BuyItem {
|
|
|
|
|
|
// unknown1: u16,
|
|
|
|
|
|
// item_id: u8,
|
|
|
|
|
|
// unknown2: u8,
|
|
|
|
|
|
// shop_item_index: u8,
|
|
|
|
|
|
// amount: u8,
|
|
|
|
|
|
// unknown3: u8,
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
#[derive(PSOPacketData, Clone)]
|
|
|
|
|
|
pub struct ShopListItem {
|
|
|
|
|
|
pub item_bytes: [u8; 12],
|
|
|
|
|
|
pub unknown: u32, // 0xFFFFFFFF
|
|
|
|
|
|
pub price: u32,
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#[pso_message(0xB6)]
|
|
|
|
|
|
pub struct ShopList {
|
|
|
|
|
|
pub shop_type: u8,
|
|
|
|
|
|
#[length_of(items)]
|
|
|
|
|
|
pub num_items: u8,
|
|
|
|
|
|
pub unused: u16,
|
|
|
|
|
|
#[length_is(num_items)]
|
|
|
|
|
|
pub items: Vec<ShopListItem>,
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[pso_message(0xB7)]
|
|
|
|
|
|
pub struct BuyItem {
|
|
|
|
|
|
item_id: u32,
|
|
|
|
|
|
shop_type: u8,
|
|
|
|
|
|
shop_index: u8,
|
|
|
|
|
|
amount: u8,
|
|
|
|
|
|
unknown1: u8,
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
#[pso_message(0xB8)]
|
|
|
#[pso_message(0xB8)]
|
|
|
pub struct TekRequest {
|
|
|
pub struct TekRequest {
|
|
@ -1054,8 +1070,9 @@ pub enum GameMessage { |
|
|
UnknownAE(UnknownAE),
|
|
|
UnknownAE(UnknownAE),
|
|
|
PhotonChairTurn(PhotonChairTurn),
|
|
|
PhotonChairTurn(PhotonChairTurn),
|
|
|
PhotonChairMove(PhotonChairMove),
|
|
|
PhotonChairMove(PhotonChairMove),
|
|
|
//ShopRequest(ShopRequest),
|
|
|
|
|
|
//BuyItem(BuyItem),
|
|
|
|
|
|
|
|
|
ShopRequest(ShopRequest),
|
|
|
|
|
|
ShopList(ShopList),
|
|
|
|
|
|
BuyItem(BuyItem),
|
|
|
TekRequest(TekRequest),
|
|
|
TekRequest(TekRequest),
|
|
|
TekPreview(TekPreview),
|
|
|
TekPreview(TekPreview),
|
|
|
//TekAccept(TekAccept),
|
|
|
//TekAccept(TekAccept),
|
|
@ -1218,8 +1235,9 @@ impl PSOPacketData for GameMessage { |
|
|
UnknownAE::CMD => Ok(GameMessage::UnknownAE(UnknownAE::from_bytes(&mut cur)?)),
|
|
|
UnknownAE::CMD => Ok(GameMessage::UnknownAE(UnknownAE::from_bytes(&mut cur)?)),
|
|
|
PhotonChairTurn::CMD => Ok(GameMessage::PhotonChairTurn(PhotonChairTurn::from_bytes(&mut cur)?)),
|
|
|
PhotonChairTurn::CMD => Ok(GameMessage::PhotonChairTurn(PhotonChairTurn::from_bytes(&mut cur)?)),
|
|
|
PhotonChairMove::CMD => Ok(GameMessage::PhotonChairMove(PhotonChairMove::from_bytes(&mut cur)?)),
|
|
|
PhotonChairMove::CMD => Ok(GameMessage::PhotonChairMove(PhotonChairMove::from_bytes(&mut cur)?)),
|
|
|
//ShopRequest::CMD => Ok(GameMessage::ShopRequest(ShopRequest::from_bytes(&mut cur)?)),
|
|
|
|
|
|
//BuyItem::CMD => Ok(GameMessage::BuyItem(BuyItem::from_bytes(&mut cur)?)),
|
|
|
|
|
|
|
|
|
ShopRequest::CMD => Ok(GameMessage::ShopRequest(ShopRequest::from_bytes(&mut cur)?)),
|
|
|
|
|
|
ShopList::CMD => Ok(GameMessage::ShopList(ShopList::from_bytes(&mut cur)?)),
|
|
|
|
|
|
BuyItem::CMD => Ok(GameMessage::BuyItem(BuyItem::from_bytes(&mut cur)?)),
|
|
|
TekRequest::CMD => Ok(GameMessage::TekRequest(TekRequest::from_bytes(&mut cur)?)),
|
|
|
TekRequest::CMD => Ok(GameMessage::TekRequest(TekRequest::from_bytes(&mut cur)?)),
|
|
|
TekPreview::CMD => Ok(GameMessage::TekPreview(TekPreview::from_bytes(&mut cur)?)),
|
|
|
TekPreview::CMD => Ok(GameMessage::TekPreview(TekPreview::from_bytes(&mut cur)?)),
|
|
|
//TekAccept::CMD => Ok(GameMessage::TekAccept(TekAccept::from_bytes(&mut cur)?)),
|
|
|
//TekAccept::CMD => Ok(GameMessage::TekAccept(TekAccept::from_bytes(&mut cur)?)),
|
|
@ -1384,8 +1402,9 @@ impl PSOPacketData for GameMessage { |
|
|
GameMessage::UnknownAE(data) => data.as_bytes(),
|
|
|
GameMessage::UnknownAE(data) => data.as_bytes(),
|
|
|
GameMessage::PhotonChairTurn(data) => data.as_bytes(),
|
|
|
GameMessage::PhotonChairTurn(data) => data.as_bytes(),
|
|
|
GameMessage::PhotonChairMove(data) => data.as_bytes(),
|
|
|
GameMessage::PhotonChairMove(data) => data.as_bytes(),
|
|
|
//GameMessage::ShopRequest(data) => data.as_bytes(),
|
|
|
|
|
|
//GameMessage::BuyItem(data) => data.as_bytes(),
|
|
|
|
|
|
|
|
|
GameMessage::ShopRequest(data) => data.as_bytes(),
|
|
|
|
|
|
GameMessage::ShopList(data) => data.as_bytes(),
|
|
|
|
|
|
GameMessage::BuyItem(data) => data.as_bytes(),
|
|
|
GameMessage::TekRequest(data) => data.as_bytes(),
|
|
|
GameMessage::TekRequest(data) => data.as_bytes(),
|
|
|
GameMessage::TekPreview(data) => data.as_bytes(),
|
|
|
GameMessage::TekPreview(data) => data.as_bytes(),
|
|
|
// GameMessage::TekAccept(data) => data.as_bytes(),
|
|
|
// GameMessage::TekAccept(data) => data.as_bytes(),
|
|
|