TrinityCore
PetPackets.h
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#ifndef PetPackets_h__
19#define PetPackets_h__
20
21#include "Packet.h"
22#include "PetDefines.h"
23#include "Position.h"
24#include "ObjectGuid.h"
25#include "Optional.h"
26#include "UnitDefines.h"
27#include <array>
28
29namespace WorldPackets
30{
31 namespace Pet
32 {
33 class DismissCritter final : public ClientPacket
34 {
35 public:
37
38 void Read() override;
39
41 };
42
43 class RequestPetInfo final : public ClientPacket
44 {
45 public:
47
48 void Read() override { }
49 };
50
51 class PetAbandon final : public ClientPacket
52 {
53 public:
54 PetAbandon(WorldPacket&& packet) : ClientPacket(CMSG_PET_ABANDON, std::move(packet)) { }
55
56 void Read() override;
57
59 };
60
61 class PetStopAttack final : public ClientPacket
62 {
63 public:
65
66 void Read() override;
67
69 };
70
71 class PetSpellAutocast final : public ClientPacket
72 {
73 public:
75
76 void Read() override;
77
80 bool AutocastEnabled = false;
81 };
82
84 {
88 float ModRate = 1.0f;
90 };
91
93 {
96 float ChargeModRate = 1.0f;
98 };
99
100 class PetSpells final : public ServerPacket
101 {
102 public:
104
105 WorldPacket const* Write() override;
106
114
115 std::array<int, 10> ActionButtons = { };
116
117 std::vector<uint32> Actions;
118 std::vector<PetSpellCooldown> Cooldowns;
119 std::vector<PetSpellHistory> SpellHistory;
120 };
121
122 class PetStableResult final : public ServerPacket
123 {
124 public:
126
127 WorldPacket const* Write() override;
128
130 };
131
132 class PetLearnedSpells final : public ServerPacket
133 {
134 public:
136
137 WorldPacket const* Write() override;
138
139 std::vector<uint32> Spells;
140 };
141
142 class PetUnlearnedSpells final : public ServerPacket
143 {
144 public:
146
147 WorldPacket const* Write() override;
148
149 std::vector<uint32> Spells;
150 };
151
153 {
156 std::string NewName;
158 };
159
160 class PetNameInvalid final : public ServerPacket
161 {
162 public:
163 PetNameInvalid() : ServerPacket(SMSG_PET_NAME_INVALID, 18 + 4 + 2 + 1 + 5 * 2 + 2) { }
164
165 WorldPacket const* Write() override;
166
168
170 };
171
172 class PetRename final : public ClientPacket
173 {
174 public:
175 PetRename(WorldPacket&& packet) : ClientPacket(CMSG_PET_RENAME, std::move(packet)) { }
176
177 void Read() override;
178
180 };
181
182 class PetAction final : public ClientPacket
183 {
184 public:
185 PetAction(WorldPacket&& packet) : ClientPacket(CMSG_PET_ACTION, std::move(packet)) { }
186
187 void Read() override;
188
193 };
194
195 class PetSetAction final : public ClientPacket
196 {
197 public:
199
200 void Read() override;
201
203
206 };
207
208 class PetCancelAura final : public ClientPacket
209 {
210 public:
212
213 void Read() override;
214
217 };
218
220 {
221 public:
223
224 WorldPacket const* Write() override;
225
227 };
228
229 class PetActionFeedback final : public ServerPacket
230 {
231 public:
233
234 WorldPacket const* Write() override;
235
238 };
239
240 class PetActionSound final : public ServerPacket
241 {
242 public:
244
245 WorldPacket const* Write() override;
246
249 };
250
251 class PetTameFailure final : public ServerPacket
252 {
253 public:
255
256 WorldPacket const* Write() override;
257
259 };
260
261 class PetMode final : public ServerPacket
262 {
263 public:
264 PetMode() : ServerPacket(SMSG_PET_MODE, 16 + 2 + 1) { }
265
266 WorldPacket const* Write() override;
267
272 };
273 }
274}
275
276#endif // PetPackets_h__
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
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition: Optional.h:25
PetActionFeedback
Definition: PetDefines.h:83
ReactStates
Definition: UnitDefines.h:505
@ REACT_PASSIVE
Definition: UnitDefines.h:506
CommandStates
Definition: UnitDefines.h:525
@ COMMAND_STAY
Definition: UnitDefines.h:526
Action
Definition: Pet.h:40
DismissCritter(WorldPacket &&packet)
Definition: PetPackets.h:36
PetAbandon(WorldPacket &&packet)
Definition: PetPackets.h:54
WorldPacket const * Write() override
WorldPacket const * Write() override
Definition: PetPackets.cpp:184
TaggedPosition< Position::XYZ > ActionPosition
Definition: PetPackets.h:192
PetAction(WorldPacket &&packet)
Definition: PetPackets.h:185
PetCancelAura(WorldPacket &&packet)
Definition: PetPackets.h:211
WorldPacket const * Write() override
Definition: PetPackets.cpp:63
std::vector< uint32 > Spells
Definition: PetPackets.h:139
WorldPacket const * Write() override
Definition: PetPackets.cpp:199
CommandStates CommandState
Definition: PetPackets.h:270
WorldPacket const * Write() override
Definition: PetPackets.cpp:79
PetRename(WorldPacket &&packet)
Definition: PetPackets.h:175
PetSetAction(WorldPacket &&packet)
Definition: PetPackets.h:198
PetSpellAutocast(WorldPacket &&packet)
Definition: PetPackets.h:74
std::array< int, 10 > ActionButtons
Definition: PetPackets.h:115
std::vector< uint32 > Actions
Definition: PetPackets.h:117
std::vector< PetSpellCooldown > Cooldowns
Definition: PetPackets.h:118
std::vector< PetSpellHistory > SpellHistory
Definition: PetPackets.h:119
WorldPacket const * Write() override
Definition: PetPackets.cpp:20
WorldPacket const * Write() override
Definition: PetPackets.cpp:56
PetStopAttack(WorldPacket &&packet)
Definition: PetPackets.h:64
WorldPacket const * Write() override
Definition: PetPackets.cpp:192
WorldPacket const * Write() override
Definition: PetPackets.cpp:71
RequestPetInfo(WorldPacket &&packet)
Definition: PetPackets.h:46
WorldPacket const * Write() override
Definition: PetPackets.cpp:169
@ CMSG_PET_RENAME
Definition: Opcodes.h:629
@ CMSG_PET_STOP_ATTACK
Definition: Opcodes.h:632
@ CMSG_PET_ACTION
Definition: Opcodes.h:616
@ CMSG_PET_ABANDON
Definition: Opcodes.h:615
@ CMSG_PET_SET_ACTION
Definition: Opcodes.h:630
@ CMSG_DISMISS_CRITTER
Definition: Opcodes.h:327
@ CMSG_PET_SPELL_AUTOCAST
Definition: Opcodes.h:631
@ CMSG_REQUEST_PET_INFO
Definition: Opcodes.h:724
@ CMSG_PET_CANCEL_AURA
Definition: Opcodes.h:627
@ SMSG_PET_STABLE_RESULT
Definition: Opcodes.h:1721
@ SMSG_PET_TAME_FAILURE
Definition: Opcodes.h:1722
@ SMSG_PET_ACTION_FEEDBACK
Definition: Opcodes.h:1694
@ SMSG_PET_SPELLS_MESSAGE
Definition: Opcodes.h:1720
@ SMSG_SET_PET_SPECIALIZATION
Definition: Opcodes.h:1921
@ SMSG_PET_NAME_INVALID
Definition: Opcodes.h:1718
@ SMSG_PET_UNLEARNED_SPELLS
Definition: Opcodes.h:1723
@ SMSG_PET_ACTION_SOUND
Definition: Opcodes.h:1695
@ SMSG_PET_MODE
Definition: Opcodes.h:1717
@ SMSG_PET_LEARNED_SPELLS
Definition: Opcodes.h:1716
STL namespace.
Optional< DeclinedName > DeclinedNames
Definition: PetPackets.h:157