TrinityCore
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 "ScenarioMgr.h"
20
22{
23ByteBuffer& operator<<(ByteBuffer& data, BonusObjectiveData const& bonusObjective)
24{
25 data << int32(bonusObjective.BonusObjectiveID);
26 data.WriteBit(bonusObjective.ObjectiveComplete);
27 data.FlushBits();
28 return data;
29}
30
32{
33 data << uint32(spell.SpellID);
34 data.WriteBit(spell.Usable);
35 data.FlushBits();
36 return data;
37}
38
40{
51 _worldPacket << uint32(Spells.size());
53
54 if (!PickedSteps.empty())
56
59
61 _worldPacket << progress;
62
63 for (BonusObjectiveData const& bonusObjective : BonusObjectives)
64 _worldPacket << bonusObjective;
65
66 for (ScenarioSpellUpdate const& spell : Spells)
67 _worldPacket << spell;
68
69 return &_worldPacket;
70}
71
73{
75
76 return &_worldPacket;
77}
78
80{
82
83 return &_worldPacket;
84}
85
87{
93
94 return &_worldPacket;
95}
96
98{
100 for (int32& scenarioPOI : MissingScenarioPOIs)
101 _worldPacket >> scenarioPOI;
102}
103
105{
107
108 for (ScenarioPOIData const& scenarioPOIData : ScenarioPOIDataStats)
109 {
110 _worldPacket << int32(scenarioPOIData.CriteriaTreeID);
111 _worldPacket << uint32(scenarioPOIData.ScenarioPOIs->size());
112
113 for (ScenarioPOI const& scenarioPOI : *scenarioPOIData.ScenarioPOIs)
114 {
115 _worldPacket << int32(scenarioPOI.BlobIndex);
116 _worldPacket << int32(scenarioPOI.MapID);
117 _worldPacket << int32(scenarioPOI.UiMapID);
118 _worldPacket << int32(scenarioPOI.Priority);
119 _worldPacket << int32(scenarioPOI.Flags);
120 _worldPacket << int32(scenarioPOI.WorldEffectID);
121 _worldPacket << int32(scenarioPOI.PlayerConditionID);
123 _worldPacket << uint32(scenarioPOI.Points.size());
124
125 for (ScenarioPOIPoint const& scenarioPOIBlobPoint : scenarioPOI.Points)
126 {
127 _worldPacket << int32(scenarioPOIBlobPoint.X);
128 _worldPacket << int32(scenarioPOIBlobPoint.Y);
129 _worldPacket << int32(scenarioPOIBlobPoint.Z);
130 }
131 }
132 }
133
134 return &_worldPacket;
135}
136}
int32_t int32
Definition: Define.h:138
uint32_t uint32
Definition: Define.h:142
Spells
Definition: PlayerAI.cpp:32
void append(T value)
Definition: ByteBuffer.h:143
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
void resize(size_type newSize)
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
WorldPacket const * Write() override
std::vector< BonusObjectiveData > BonusObjectives
WorldPacket const * Write() override
ByteBuffer & operator<<(ByteBuffer &data, BonusObjectiveData const &bonusObjective)
int32 NavigationPlayerConditionID
Definition: ScenarioMgr.h:83
std::vector< ScenarioPOIPoint > Points
Definition: ScenarioMgr.h:84
int32 Flags
Definition: ScenarioMgr.h:80
int32 Priority
Definition: ScenarioMgr.h:79
int32 PlayerConditionID
Definition: ScenarioMgr.h:82
int32 UiMapID
Definition: ScenarioMgr.h:78
int32 WorldEffectID
Definition: ScenarioMgr.h:81
int32 BlobIndex
Definition: ScenarioMgr.h:76
int32 MapID
Definition: ScenarioMgr.h:77