TrinityCore
PetPackets.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 "PetPackets.h"
19
21{
30 _worldPacket << uint32(Actions.size());
31 _worldPacket << uint32(Cooldowns.size());
33
34 for (uint32 action : Actions)
35 _worldPacket << uint32(action);
36
37 for (PetSpellCooldown const& cooldown : Cooldowns)
38 {
39 _worldPacket << int32(cooldown.SpellID);
40 _worldPacket << int32(cooldown.Duration);
41 _worldPacket << int32(cooldown.CategoryDuration);
42 _worldPacket << float(cooldown.ModRate);
43 _worldPacket << uint16(cooldown.Category);
44 }
45
46 for (PetSpellHistory const& history : SpellHistory)
47 {
48 _worldPacket << int32(history.CategoryID);
49 _worldPacket << int32(history.RecoveryTime);
50 _worldPacket << float(history.ChargeModRate);
51 _worldPacket << int8(history.ConsumedCharges);
52 }
53
54 return &_worldPacket;
55}
56
58{
59 _worldPacket << int32(Result);
60
61 return &_worldPacket;
62}
63
65{
66 _worldPacket << uint32(Spells.size());
67 for (uint32 spell : Spells)
68 _worldPacket << int32(spell);
69 return &_worldPacket;
70}
71
73{
74 _worldPacket << uint32(Spells.size());
75 for (uint32 spell : Spells)
76 _worldPacket << int32(spell);
77 return &_worldPacket;
78}
79
81{
82 _worldPacket << uint8(Result);
83 _worldPacket << RenameData.PetGUID;
84 _worldPacket << int32(RenameData.PetNumber);
85
86 _worldPacket << uint8(RenameData.NewName.length());
87
88 _worldPacket.WriteBit(RenameData.DeclinedNames.has_value());
89
90 if (RenameData.DeclinedNames)
91 {
92 for (int32 i = 0; i < MAX_DECLINED_NAME_CASES; i++)
93 _worldPacket.WriteBits(RenameData.DeclinedNames->name[i].length(), 7);
94
95 for (int32 i = 0; i < MAX_DECLINED_NAME_CASES; i++)
96 _worldPacket << RenameData.DeclinedNames->name[i];
97 }
98
99 _worldPacket.WriteString(RenameData.NewName);
100 return &_worldPacket;
101}
102
104{
105 _worldPacket >> RenameData.PetGUID;
106 _worldPacket >> RenameData.PetNumber;
107
108 uint8 nameLen = _worldPacket.ReadBits(8);
109
110 if (_worldPacket.ReadBit())
111 {
112 RenameData.DeclinedNames.emplace();
114 for (int32 i = 0; i < MAX_DECLINED_NAME_CASES; i++)
115 count[i] = _worldPacket.ReadBits(7);
116
117 for (int32 i = 0; i < MAX_DECLINED_NAME_CASES; i++)
118 RenameData.DeclinedNames->name[i] = _worldPacket.ReadString(count[i]);
119 }
120
121 RenameData.NewName = _worldPacket.ReadString(nameLen);
122}
123
125{
126 _worldPacket >> PetGUID;
127
128 _worldPacket >> Action;
129 _worldPacket >> TargetGUID;
130
131 _worldPacket >> ActionPosition;
132}
133
135{
136 _worldPacket >> PetGUID;
137}
138
140{
141 _worldPacket >> PetGUID;
142
143 _worldPacket >> Index;
144 _worldPacket >> Action;
145}
146
148{
149 _worldPacket >> Pet;
150}
151
153{
154 _worldPacket >> PetNumber;
155}
156
158{
159 _worldPacket >> PetGUID;
160 _worldPacket >> SpellID;
161 AutocastEnabled = _worldPacket.ReadBit();
162}
163
165{
166 _worldPacket >> CritterGUID;
167}
168
170{
171 _worldPacket >> PetGUID;
172 _worldPacket >> SpellID;
173}
174
176{
177 _worldPacket << uint16(SpecID);
178
179 return &_worldPacket;
180}
181
183{
184 _worldPacket << int32(SpellID);
185 _worldPacket << uint8(Response);
186
187 return &_worldPacket;
188}
189
191{
192 _worldPacket << UnitGUID;
193 _worldPacket << int32(Action);
194
195 return &_worldPacket;
196}
197
199{
200 _worldPacket << uint8(Result);
201
202 return &_worldPacket;
203}
204
206{
207 _worldPacket << PetGUID;
208 _worldPacket << uint8(CommandState);
209 _worldPacket << uint8(Flag);
210 _worldPacket << uint8(ReactState);
211
212 return &_worldPacket;
213}
uint8_t uint8
Definition: Define.h:144
int8_t int8
Definition: Define.h:140
int32_t int32
Definition: Define.h:138
uint16_t uint16
Definition: Define.h:143
uint32_t uint32
Definition: Define.h:142
Spells
Definition: PlayerAI.cpp:32
#define MAX_DECLINED_NAME_CASES
Definition: UnitDefines.h:518
Action
void append(T value)
Definition: ByteBuffer.h:137
Definition: Pet.h:40
WorldPacket _worldPacket
Definition: Packet.h:43
WorldPacket const * Write() override
WorldPacket const * Write() override
Definition: PetPackets.cpp:190
WorldPacket const * Write() override
Definition: PetPackets.cpp:64
WorldPacket const * Write() override
Definition: PetPackets.cpp:205
WorldPacket const * Write() override
Definition: PetPackets.cpp:80
std::array< int, 10 > ActionButtons
Definition: PetPackets.h:125
std::vector< PetSpellCooldown > Cooldowns
Definition: PetPackets.h:128
WorldPacket const * Write() override
Definition: PetPackets.cpp:20
WorldPacket const * Write() override
Definition: PetPackets.cpp:57
WorldPacket const * Write() override
Definition: PetPackets.cpp:198
WorldPacket const * Write() override
Definition: PetPackets.cpp:72
WorldPacket const * Write() override
Definition: PetPackets.cpp:175
Actions
boost::beast::http::response< ResponseBody > Response
Definition: HttpCommon.h:31