use crate::fixed_types::Bytes;
use super::{HelperReadWrite, MessageChannel, ObjectHeader, PacketReadWrite};
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(default))]
#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
#[Id(0x2F, 0x00)]
pub struct SymbolArtClientDataRequestPacket {
pub uuid: u128,
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(default))]
#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
#[Id(0x2F, 0x01)]
pub struct SymbolArtDataRequestPacket {
pub uuid: u128,
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(default))]
#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
#[Id(0x2F, 0x02)]
#[Flags(Flags::PACKED)]
#[Magic(0x4B58, 0x76)]
pub struct SymbolArtDataPacket {
pub uuid: u128,
pub data: Bytes,
pub name: String,
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(default))]
#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
#[Id(0x2F, 0x03)]
#[Flags(Flags::PACKED)]
#[Magic(0xD116, 0xC1)]
pub struct SymbolArtClientDataPacket {
pub uuid: u128,
pub data: Bytes,
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(default))]
#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
#[Id(0x2F, 0x04)]
#[Flags(Flags::PACKED)]
#[Magic(0x56D3, 0x0C)]
pub struct ChangeSymbolArtPacket {
pub uuids: Vec<SlottedSymbolArt>,
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(default))]
#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
#[Id(0x2F, 0x05)]
#[Flags(Flags::PACKED)]
#[Magic(0xDC91, 0x57)]
pub struct SymbolArtResultPacket {
pub unk1: u32,
pub uuids: Vec<u128>,
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(default))]
#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
#[Id(0x2F, 0x07)]
#[Flags(Flags::PACKED)]
#[Magic(0xE80C, 0xED)]
pub struct SymbolArtListPacket {
pub object: ObjectHeader,
pub character_id: u32,
pub uuids: Vec<u128>,
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(default))]
#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
#[Id(0x2F, 0x08)]
#[Flags(Flags::OBJECT_RELATED)]
pub struct SendSymbolArtPacket {
pub object: ObjectHeader,
pub uuid: u128,
pub area: MessageChannel,
pub unk1: u8,
pub unk2: u16,
pub unk3: u32,
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(default))]
#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
#[Id(0x2F, 0x09)]
pub struct ReceiveSymbolArtPacket {
pub object: ObjectHeader,
pub uuid: u128,
pub area: MessageChannel,
pub unk1: u8,
pub unk2: u16,
pub unk3: u32,
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(default))]
#[derive(Debug, Clone, Copy, Default, PartialEq, HelperReadWrite)]
pub struct SlottedSymbolArt {
pub uuid: u128,
pub slot: u32,
}