TrinityCore
Loading...
Searching...
No Matches
ScenarioPackets.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 "ScenarioPackets.h"
19#include "PacketOperators.h"
20#include "ScenarioMgr.h"
21
23{
24ByteBuffer& operator<<(ByteBuffer& data, BonusObjectiveData const& bonusObjective)
25{
26 data << int32(bonusObjective.BonusObjectiveID);
27 data << Bits<1>(bonusObjective.ObjectiveComplete);
28 data.FlushBits();
29
30 return data;
31}
32
34{
35 data << uint32(spell.SpellID);
36 data << Bits<1>(spell.Usable);
37 data.FlushBits();
38
39 return data;
40}
41
43{
51 _worldPacket << Size<uint32>(CriteriaProgress);
52 _worldPacket << Size<uint32>(BonusObjectives);
53 _worldPacket << Size<uint32>(PickedSteps);
54 _worldPacket << Size<uint32>(Spells);
56
57 if (!PickedSteps.empty())
59
60 _worldPacket << Bits<1>(ScenarioComplete);
62
64 _worldPacket << progress;
65
66 for (BonusObjectiveData const& bonusObjective : BonusObjectives)
67 _worldPacket << bonusObjective;
68
69 for (ScenarioSpellUpdate const& spell : Spells)
70 _worldPacket << spell;
71
72 return &_worldPacket;
73}
74
81
88
90{
94 _worldPacket << Bits<2>(Reason);
96
97 return &_worldPacket;
98}
99
101{
102 _worldPacket >> Size<uint32>(MissingScenarioPOIs);
103 for (int32& scenarioPOI : MissingScenarioPOIs)
104 _worldPacket >> scenarioPOI;
105}
106
108{
109 _worldPacket << Size<uint32>(ScenarioPOIDataStats);
110
111 for (ScenarioPOIData const& scenarioPOIData : ScenarioPOIDataStats)
112 {
113 _worldPacket << int32(scenarioPOIData.CriteriaTreeID);
114 _worldPacket << Size<uint32>(*scenarioPOIData.ScenarioPOIs);
115
116 for (ScenarioPOI const& scenarioPOI : *scenarioPOIData.ScenarioPOIs)
117 {
118 _worldPacket << int32(scenarioPOI.BlobIndex);
119 _worldPacket << int32(scenarioPOI.MapID);
120 _worldPacket << int32(scenarioPOI.UiMapID);
121 _worldPacket << int32(scenarioPOI.Priority);
122 _worldPacket << int32(scenarioPOI.Flags);
123 _worldPacket << int32(scenarioPOI.WorldEffectID);
124 _worldPacket << int32(scenarioPOI.PlayerConditionID);
125 _worldPacket << int32(scenarioPOI.NavigationPlayerConditionID);
126 _worldPacket << Size<uint32>(scenarioPOI.Points);
127
128 for (ScenarioPOIPoint const& scenarioPOIBlobPoint : scenarioPOI.Points)
129 {
130 _worldPacket << int32(scenarioPOIBlobPoint.X);
131 _worldPacket << int32(scenarioPOIBlobPoint.Y);
132 _worldPacket << int32(scenarioPOIBlobPoint.Z);
133 }
134 }
135 }
136
137 return &_worldPacket;
138}
139}
int16_t int16
Definition Define.h:151
int32_t int32
Definition Define.h:150
uint32_t uint32
Definition Define.h:154
Spells
Definition PlayerAI.cpp:32
void append(T value)
Definition ByteBuffer.h:130
void FlushBits()
Definition ByteBuffer.h:141
WorldPacket _worldPacket
Definition Packet.h:43
Array< int32, MAX_ALLOWED_SCENARIO_POI_QUERY_SIZE > MissingScenarioPOIs
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< ScenarioPOIData > ScenarioPOIDataStats
Achievement::CriteriaProgress CriteriaProgress
std::vector< Achievement::CriteriaProgress > CriteriaProgress
WorldPacket const * Write() override
std::vector< BonusObjectiveData > BonusObjectives
std::vector< ScenarioSpellUpdate > Spells
WorldPacket const * Write() override
ByteBuffer & operator<<(ByteBuffer &data, BonusObjectiveData const &bonusObjective)