TrinityCore
ItemPackets.cpp
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "ItemPackets.h"
19
21{
24}
25
27{
28 _worldPacket >> VendorGUID;
29 _worldPacket >> ContainerGUID;
30 _worldPacket >> Quantity;
31 _worldPacket >> Muid;
32 _worldPacket >> Slot;
33 ItemType = _worldPacket.read<ItemVendorType, int32>();
34 _worldPacket >> Item;
35}
36
38{
39 _worldPacket << VendorGUID;
40 _worldPacket << uint32(Muid);
41 _worldPacket << int32(NewQuantity);
42 _worldPacket << uint32(QuantityBought);
43
44 return &_worldPacket;
45}
46
48{
49 _worldPacket << VendorGUID;
50 _worldPacket << uint32(Muid);
51 _worldPacket << uint8(Reason);
52
53 return &_worldPacket;
54}
55
57{
58 _worldPacket >> ItemGUID;
59}
60
62{
63 data << int32(refundItem.ItemID);
64 data << int32(refundItem.ItemCount);
65
66 return data;
67}
68
70{
71 data << int32(refundCurrency.CurrencyID);
72 data << int32(refundCurrency.CurrencyCount);
73
74 return data;
75}
76
78{
79 data << uint64(purchaseContents.Money);
80 for (uint32 i = 0; i < 5; ++i)
81 data << purchaseContents.Items[i];
82
83 for (uint32 i = 0; i < 5; ++i)
84 data << purchaseContents.Currencies[i];
85
86 return data;
87}
88
90{
91 _worldPacket << ItemGUID;
92 _worldPacket << Contents;
93 _worldPacket << uint32(Flags);
94 _worldPacket << uint32(PurchaseTime);
95
96 return &_worldPacket;
97}
98
100{
101 _worldPacket >> ItemGUID;
102}
103
105{
106 _worldPacket << ItemGUID;
107 _worldPacket << uint8(Result);
108 _worldPacket.WriteBit(Contents.has_value());
109 _worldPacket.FlushBits();
110 if (Contents)
111 _worldPacket << *Contents;
112
113 return &_worldPacket;
114}
115
117{
118 _worldPacket << ItemGUID;
119
120 return &_worldPacket;
121}
122
124{
125 _worldPacket >> NpcGUID;
126 _worldPacket >> ItemGUID;
127 UseGuildBank = _worldPacket.ReadBit();
128}
129
131{
132 _worldPacket >> VendorGUID;
133 _worldPacket >> ItemGUID;
134 _worldPacket >> Amount;
135}
136
138{
139 _worldPacket << ItemGuid;
140 _worldPacket << uint32(DurationLeft);
141
142 return &_worldPacket;
143}
144
146{
147 _worldPacket << uint32(ProficiencyMask);
148 _worldPacket << uint8(ProficiencyClass);
149
150 return &_worldPacket;
151}
152
154{
155 _worldPacket << int32(BagResult);
156 _worldPacket << Item[0];
157 _worldPacket << Item[1];
158 _worldPacket << uint8(ContainerBSlot); // bag type subclass, used with EQUIP_ERR_EVENT_AUTOEQUIP_BIND_CONFIRM and EQUIP_ERR_WRONG_BAG_TYPE_2
159
160 switch (BagResult)
161 {
164 _worldPacket << int32(Level);
165 break;
167 _worldPacket << SrcContainer;
168 _worldPacket << int32(SrcSlot);
169 _worldPacket << DstContainer;
170 break;
174 _worldPacket << int32(LimitCategory);
175 break;
176 default:
177 break;
178 }
179
180 return &_worldPacket;
181}
182
184{
185 _worldPacket >> Inv;
186 _worldPacket >> FromPackSlot;
187 _worldPacket >> FromSlot;
188 _worldPacket >> ToPackSlot;
189 _worldPacket >> ToSlot;
190 _worldPacket >> Quantity;
191}
192
194{
195 _worldPacket >> Inv;
196 _worldPacket >> Slot2;
197 _worldPacket >> Slot1;
198}
199
201{
202 _worldPacket >> Inv;
203 _worldPacket >> ContainerSlotB;
204 _worldPacket >> ContainerSlotA;
205 _worldPacket >> SlotB;
206 _worldPacket >> SlotA;
207}
208
210{
211 _worldPacket >> Inv;
212 _worldPacket >> PackSlot;
213 _worldPacket >> Slot;
214}
215
217{
218 _worldPacket >> Inv;
219 _worldPacket >> Item;
220 _worldPacket >> ItemDstSlot;
221}
222
224{
225 _worldPacket >> Inv;
226 _worldPacket >> ContainerSlotB;
227 _worldPacket >> ContainerSlotA;
228 _worldPacket >> SlotA;
229}
230
232{
233 _worldPacket >> Count;
234 _worldPacket >> ContainerId;
235 _worldPacket >> SlotNum;
236}
237
239{
240 _worldPacket << VendorGUID;
241 _worldPacket << uint32(ItemGUIDs.size());
242 _worldPacket << int32(Reason);
243 for (ObjectGuid const& itemGuid : ItemGUIDs)
244 _worldPacket << itemGuid;
245
246 return &_worldPacket;
247}
248
250{
251 _worldPacket << PlayerGUID;
252 _worldPacket << uint8(Slot);
253 _worldPacket << int32(SlotInBag);
254 _worldPacket << int32(QuestLogItemID);
255 _worldPacket << int32(Quantity);
256 _worldPacket << int32(QuantityInInventory);
257 _worldPacket << int32(DungeonEncounterID);
258 _worldPacket << int32(BattlePetSpeciesID);
259 _worldPacket << int32(BattlePetBreedID);
260 _worldPacket << uint32(BattlePetBreedQuality);
261 _worldPacket << int32(BattlePetLevel);
262 _worldPacket << ItemGUID;
263 _worldPacket << uint32(Toasts.size());
264 for (UiEventToast const& uiEventToast : Toasts)
265 _worldPacket << uiEventToast;
266
267 _worldPacket.WriteBit(Pushed);
268 _worldPacket.WriteBit(Created);
269 _worldPacket.WriteBit(Unused_1017);
270 _worldPacket.WriteBits(DisplayText, 3);
271 _worldPacket.WriteBit(IsBonusRoll);
272 _worldPacket.WriteBit(IsEncounterLoot);
273 _worldPacket.WriteBit(CraftingData.has_value());
274 _worldPacket.WriteBit(FirstCraftOperationID.has_value());
275 _worldPacket.FlushBits();
276
277 _worldPacket << Item;
278
279 if (FirstCraftOperationID)
280 _worldPacket << uint32(*FirstCraftOperationID);
281
282 if (CraftingData)
283 _worldPacket << *CraftingData;
284
285 return &_worldPacket;
286}
287
289{
290 _worldPacket >> PackSlot;
291 _worldPacket >> Slot;
292}
293
295{
296 _worldPacket << Item;
297 _worldPacket << uint32(Delay);
298 _worldPacket.WriteBits(Subcode, 2);
299
300 _worldPacket.FlushBits();
301
302 return &_worldPacket;
303}
304
306{
307 _worldPacket << Item;
308
309 return &_worldPacket;
310}
311
313{
314 _worldPacket >> Inv;
315}
316
318{
319 _worldPacket >> Slot;
320}
321
323{
324 _worldPacket << ItemGuid;
325 _worldPacket << uint32(SpellID);
326 _worldPacket << uint32(Cooldown);
327
328 return &_worldPacket;
329}
330
332{
333 _worldPacket << Owner;
334 _worldPacket << Caster;
335 _worldPacket << ItemGUID;
336 _worldPacket << int32(ItemID);
337 _worldPacket << int32(Enchantment);
338 _worldPacket << int32(EnchantSlot);
339
340 return &_worldPacket;
341}
342
344{
345 _worldPacket << ItemGuid;
346 _worldPacket << uint32(DurationLeft);
347 _worldPacket << uint32(Slot);
348 _worldPacket << OwnerGuid;
349
350 return &_worldPacket;
351}
352
354{
355 _worldPacket >> ItemGuid;
356}
357
359{
360 _worldPacket >> ItemGuid;
361 for (ObjectGuid& gemGuid : GemItem)
362 _worldPacket >> gemGuid;
363}
364
366{
367 _worldPacket << Item;
368
369 return &_worldPacket;
370}
371
373{
374 _worldPacket >> ItemGuid;
375}
uint8_t uint8
Definition: Define.h:144
int32_t int32
Definition: Define.h:138
uint64_t uint64
Definition: Define.h:141
uint32_t uint32
Definition: Define.h:142
@ EQUIP_ERR_CANT_EQUIP_LEVEL_I
Definition: ItemDefines.h:27
@ EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED_IS
Definition: ItemDefines.h:111
@ EQUIP_ERR_EVENT_AUTOEQUIP_BIND_CONFIRM
Definition: ItemDefines.h:108
@ EQUIP_ERR_PURCHASE_LEVEL_TOO_LOW
Definition: ItemDefines.h:114
@ EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED_IS
Definition: ItemDefines.h:116
@ EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_SOCKETED_EXCEEDED_IS
Definition: ItemDefines.h:112
ItemVendorType
Definition: ItemDefines.h:201
Definition: Item.h:170
WorldPacket const * Write() override
Definition: ItemPackets.cpp:47
WorldPacket const * Write() override
Definition: ItemPackets.cpp:37
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
Definition: ItemPackets.cpp:89
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket _worldPacket
Definition: Packet.h:43
ByteBuffer & operator<<(ByteBuffer &data, ItemBonuses const &itemBonusInstanceData)
ItemPurchaseRefundCurrency Currencies[5]
Definition: ItemPackets.h:114
ItemPurchaseRefundItem Items[5]
Definition: ItemPackets.h:113