TrinityCore
AchievementPackets.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 "AchievementPackets.h"
19
21{
23{
24 data << uint32(earned.Id);
25 data << earned.Date;
26 data << earned.Owner;
27 data << uint32(earned.VirtualRealmAddress);
28 data << uint32(earned.NativeRealmAddress);
29 return data;
30}
31
33{
34 data << uint32(criteria.Id);
35 data << uint64(criteria.Quantity);
36 data << criteria.Player;
37 data << uint32(criteria.Unused_10_1_5);
38 data << uint32(criteria.Flags);
39 data << criteria.Date;
40 data << criteria.TimeFromStart;
41 data << criteria.TimeFromCreate;
42 data.WriteBit(criteria.RafAcceptanceID.has_value());
43 data.FlushBits();
44
45 if (criteria.RafAcceptanceID)
46 data << uint64(*criteria.RafAcceptanceID);
47
48 return data;
49}
50
51ByteBuffer& operator<<(ByteBuffer& data, AllAchievements const& allAchievements)
52{
53 data << uint32(allAchievements.Earned.size());
54 data << uint32(allAchievements.Progress.size());
55
56 for (EarnedAchievement const& earned : allAchievements.Earned)
57 data << earned;
58
59 for (CriteriaProgress const& progress : allAchievements.Progress)
60 data << progress;
61
62 return data;
63}
64
66{
68
69 return &_worldPacket;
70}
71
73{
74 _worldPacket << uint32(Progress.size());
75 for (CriteriaProgress const& progress : Progress)
76 _worldPacket << progress;
77
78 return &_worldPacket;
79}
80
82{
85
86 return &_worldPacket;
87}
88
90{
101
102 if (RafAcceptanceID)
104
105 return &_worldPacket;
106}
107
109{
111
112 return &_worldPacket;
113}
114
116{
118
119 return &_worldPacket;
120}
121
123{
126
127 return &_worldPacket;
128}
129
131{
140
141 return &_worldPacket;
142}
143
145{
146 _worldPacket.WriteBits(Name.length(), 7);
151
152 return &_worldPacket;
153}
154
156{
157 _worldPacket << uint32(Progress.size());
158
159 for (GuildCriteriaProgress const& progress : Progress)
160 {
161 _worldPacket << int32(progress.CriteriaID);
162 _worldPacket << progress.DateCreated;
163 _worldPacket << progress.DateStarted;
164 _worldPacket << int64(progress.DateUpdated.GetPackedTime());
165 _worldPacket << uint64(progress.Quantity);
166 _worldPacket << progress.PlayerGUID;
167 _worldPacket << int32(progress.Unused_10_1_5);
168 _worldPacket << int32(progress.Flags);
169 }
170
171 return &_worldPacket;
172}
173
175{
178
179 return &_worldPacket;
180}
181
183{
185}
186
188{
192
193 return &_worldPacket;
194}
195
197{
201
202 return &_worldPacket;
203}
204
206{
207 _worldPacket << uint32(Earned.size());
208
209 for (EarnedAchievement const& earned : Earned)
210 _worldPacket << earned;
211
212 return &_worldPacket;
213}
214
216{
220}
221
222ByteBuffer& operator<<(ByteBuffer& data, GuildAchievementMember const& guildAchievementMember)
223{
224 data << guildAchievementMember.MemberGUID;
225 return data;
226}
227
229{
232 _worldPacket << uint32(Member.size());
233 for (GuildAchievementMember const& member : Member)
234 _worldPacket << member;
235
236 return &_worldPacket;
237}
238}
int64_t int64
Definition: Define.h:137
int32_t int32
Definition: Define.h:138
uint64_t uint64
Definition: Define.h:141
uint32_t uint32
Definition: Define.h:142
void WriteString(std::string const &str)
Definition: ByteBuffer.h:500
bool WriteBit(bool bit)
Definition: ByteBuffer.h:175
void WriteBits(std::size_t value, int32 bits)
Definition: ByteBuffer.h:203
void FlushBits()
Definition: ByteBuffer.h:155
std::vector< CriteriaProgress > Progress
std::vector< GuildAchievementMember > Member
std::vector< GuildCriteriaProgress > Progress
WorldPacket _worldPacket
Definition: Packet.h:43
ByteBuffer & operator<<(ByteBuffer &data, EarnedAchievement const &earned)
std::vector< CriteriaProgress > Progress
std::vector< EarnedAchievement > Earned