TrinityCore
Loading...
Searching...
No Matches
UpdateData.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 __UPDATEDATA_H
19#define __UPDATEDATA_H
20
21#include "Define.h"
22#include "ByteBuffer.h"
23#include "ObjectGuid.h"
24#include <set>
25
26class WorldPacket;
27
37
53
55{
56 public:
57 UpdateData();
60 m_data(std::move(right.m_data))
61 {
62 }
63
64 void AddOutOfRangeGUID(GuidSet& guids);
68 bool BuildPacket(WorldPacket* packet);
69 bool HasData() const { return m_blockCount > 0 || !m_outOfRangeGUIDs.empty(); }
70 void Clear();
71
72 GuidSet const& GetOutOfRangeGUIDs() const { return m_outOfRangeGUIDs; }
73
74 protected:
78
79 void Compress(void* dst, uint32 *dst_size, void* src, int src_size);
80
81 UpdateData(UpdateData const& right) = delete;
82 UpdateData& operator=(UpdateData const& right) = delete;
83};
84#endif
uint32_t uint32
Definition Define.h:133
std::set< ObjectGuid > GuidSet
Definition ObjectGuid.h:260
OBJECT_UPDATE_TYPE
Definition UpdateData.h:29
@ UPDATETYPE_VALUES
Definition UpdateData.h:30
@ UPDATETYPE_CREATE_OBJECT
Definition UpdateData.h:32
@ UPDATETYPE_NEAR_OBJECTS
Definition UpdateData.h:35
@ UPDATETYPE_OUT_OF_RANGE_OBJECTS
Definition UpdateData.h:34
@ UPDATETYPE_MOVEMENT
Definition UpdateData.h:31
@ UPDATETYPE_CREATE_OBJECT2
Definition UpdateData.h:33
OBJECT_UPDATE_FLAGS
Definition UpdateData.h:39
@ UPDATEFLAG_LIVING
Definition UpdateData.h:46
@ UPDATEFLAG_ROTATION
Definition UpdateData.h:50
@ UPDATEFLAG_POSITION
Definition UpdateData.h:49
@ UPDATEFLAG_LOWGUID
Definition UpdateData.h:45
@ UPDATEFLAG_VEHICLE
Definition UpdateData.h:48
@ UPDATEFLAG_TRANSPORT
Definition UpdateData.h:42
@ UPDATEFLAG_UNKNOWN
Definition UpdateData.h:44
@ UPDATEFLAG_NONE
Definition UpdateData.h:40
@ UPDATEFLAG_SELF
Definition UpdateData.h:41
@ UPDATEFLAG_STATIONARY_POSITION
Definition UpdateData.h:47
@ UPDATEFLAG_HAS_TARGET
Definition UpdateData.h:43
@ UPDATEFLAG_NO_BIRTH_ANIM
Definition UpdateData.h:51
bool HasData() const
Definition UpdateData.h:69
UpdateData(UpdateData const &right)=delete
UpdateData(UpdateData &&right)
Definition UpdateData.h:58
uint32 m_blockCount
Definition UpdateData.h:75
void AddOutOfRangeGUID(GuidSet &guids)
GuidSet const & GetOutOfRangeGUIDs() const
Definition UpdateData.h:72
ByteBuffer & GetBuffer()
Definition UpdateData.h:67
bool BuildPacket(WorldPacket *packet)
ByteBuffer m_data
Definition UpdateData.h:77
UpdateData & operator=(UpdateData const &right)=delete
void AddUpdateBlock()
Definition UpdateData.h:66
GuidSet m_outOfRangeGUIDs
Definition UpdateData.h:76
void Compress(void *dst, uint32 *dst_size, void *src, int src_size)
STL namespace.