1use crate::fixed_types::Bytes;
3
4use super::{HelperReadWrite, MessageChannel, ObjectHeader, PacketReadWrite};
5
6#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
16#[cfg_attr(feature = "serde", serde(default))]
17#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
18#[Id(0x2F, 0x00)]
19pub struct SymbolArtClientDataRequestPacket {
20 pub uuid: u128,
22}
23
24#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
30#[cfg_attr(feature = "serde", serde(default))]
31#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
32#[Id(0x2F, 0x01)]
33pub struct SymbolArtDataRequestPacket {
34 pub uuid: u128,
36}
37
38#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
44#[cfg_attr(feature = "serde", serde(default))]
45#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
46#[Id(0x2F, 0x02)]
47#[Flags(Flags::PACKED)]
48#[Magic(0x4B58, 0x76)]
49pub struct SymbolArtDataPacket {
50 pub uuid: u128,
52 pub data: Bytes,
54 pub name: String,
56}
57
58#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
64#[cfg_attr(feature = "serde", serde(default))]
65#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
66#[Id(0x2F, 0x03)]
67#[Flags(Flags::PACKED)]
68#[Magic(0xD116, 0xC1)]
69pub struct SymbolArtClientDataPacket {
70 pub uuid: u128,
72 pub data: Bytes,
74}
75
76#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
82#[cfg_attr(feature = "serde", serde(default))]
83#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
84#[Id(0x2F, 0x04)]
85#[Flags(Flags::PACKED)]
86#[Magic(0x56D3, 0x0C)]
87pub struct ChangeSymbolArtPacket {
88 pub uuids: Vec<SlottedSymbolArt>,
90}
91
92#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
98#[cfg_attr(feature = "serde", serde(default))]
99#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
100#[Id(0x2F, 0x05)]
101#[Flags(Flags::PACKED)]
102#[Magic(0xDC91, 0x57)]
103pub struct SymbolArtResultPacket {
104 pub unk1: u32,
105 pub uuids: Vec<u128>,
106}
107
108#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
114#[cfg_attr(feature = "serde", serde(default))]
115#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
116#[Id(0x2F, 0x07)]
117#[Flags(Flags::PACKED)]
118#[Magic(0xE80C, 0xED)]
119pub struct SymbolArtListPacket {
120 pub object: ObjectHeader,
122 pub character_id: u32,
124 pub uuids: Vec<u128>,
126}
127
128#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
134#[cfg_attr(feature = "serde", serde(default))]
135#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
136#[Id(0x2F, 0x08)]
137#[Flags(Flags::OBJECT_RELATED)]
138pub struct SendSymbolArtPacket {
139 pub object: ObjectHeader,
141 pub uuid: u128,
143 pub area: MessageChannel,
145 pub unk1: u8,
146 pub unk2: u16,
147 pub unk3: u32,
148}
149
150#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
154#[cfg_attr(feature = "serde", serde(default))]
155#[derive(Debug, Clone, Default, PartialEq, PacketReadWrite)]
156#[Id(0x2F, 0x09)]
157pub struct ReceiveSymbolArtPacket {
158 pub object: ObjectHeader,
160 pub uuid: u128,
162 pub area: MessageChannel,
164 pub unk1: u8,
165 pub unk2: u16,
166 pub unk3: u32,
167}
168
169#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
175#[cfg_attr(feature = "serde", serde(default))]
176#[derive(Debug, Clone, Copy, Default, PartialEq, HelperReadWrite)]
177pub struct SlottedSymbolArt {
178 pub uuid: u128,
180 pub slot: u32,
182}