mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Misc: Enum flag v3 - allow enabling flag operations directly after enum definition when inside namespaces
This commit is contained in:
@@ -20,80 +20,85 @@
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
namespace EnumFlag
|
||||
template<typename T>
|
||||
constexpr bool IsEnumFlag(T) { return false; }
|
||||
|
||||
#define DEFINE_ENUM_FLAG(enumType) constexpr bool IsEnumFlag(enumType) { return true; }
|
||||
|
||||
namespace EnumTraits
|
||||
{
|
||||
template<typename T>
|
||||
struct IsFlag : std::false_type { };
|
||||
using IsFlag = std::integral_constant<bool, IsEnumFlag(T{})>;
|
||||
}
|
||||
|
||||
template<typename T, std::enable_if_t<EnumFlag::IsFlag<T>::value, std::nullptr_t> = nullptr>
|
||||
template<typename T, std::enable_if_t<EnumTraits::IsFlag<T>::value, std::nullptr_t> = nullptr>
|
||||
inline constexpr T operator&(T left, T right)
|
||||
{
|
||||
return static_cast<T>(static_cast<std::underlying_type_t<T>>(left) & static_cast<std::underlying_type_t<T>>(right));
|
||||
}
|
||||
|
||||
template<typename T, std::enable_if_t<EnumFlag::IsFlag<T>::value, std::nullptr_t> = nullptr>
|
||||
template<typename T, std::enable_if_t<EnumTraits::IsFlag<T>::value, std::nullptr_t> = nullptr>
|
||||
inline constexpr T& operator&=(T& left, T right)
|
||||
{
|
||||
return left = left & right;
|
||||
}
|
||||
|
||||
template<typename T, std::enable_if_t<EnumFlag::IsFlag<T>::value, std::nullptr_t> = nullptr>
|
||||
template<typename T, std::enable_if_t<EnumTraits::IsFlag<T>::value, std::nullptr_t> = nullptr>
|
||||
inline constexpr T operator|(T left, T right)
|
||||
{
|
||||
return static_cast<T>(static_cast<std::underlying_type_t<T>>(left) | static_cast<std::underlying_type_t<T>>(right));
|
||||
}
|
||||
|
||||
template<typename T, std::enable_if_t<EnumFlag::IsFlag<T>::value, std::nullptr_t> = nullptr>
|
||||
template<typename T, std::enable_if_t<EnumTraits::IsFlag<T>::value, std::nullptr_t> = nullptr>
|
||||
inline constexpr T& operator|=(T& left, T right)
|
||||
{
|
||||
return left = left | right;
|
||||
}
|
||||
|
||||
template<typename T, std::enable_if_t<EnumFlag::IsFlag<T>::value, std::nullptr_t> = nullptr>
|
||||
template<typename T, std::enable_if_t<EnumTraits::IsFlag<T>::value, std::nullptr_t> = nullptr>
|
||||
inline constexpr T operator~(T value)
|
||||
{
|
||||
return static_cast<T>(~static_cast<std::underlying_type_t<T>>(value));
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
class EnumFlag_t
|
||||
class EnumFlag
|
||||
{
|
||||
static_assert(EnumFlag::IsFlag<T>::value, "EnumFlag_t must be used only with enums that are specify EnumFlag::IsFlag");
|
||||
static_assert(EnumTraits::IsFlag<T>::value, "EnumFlag must be used only with enums that are specify EnumFlag::IsFlag");
|
||||
|
||||
public:
|
||||
/*implicit*/ constexpr EnumFlag_t(T value) : _value(value)
|
||||
/*implicit*/ constexpr EnumFlag(T value) : _value(value)
|
||||
{
|
||||
}
|
||||
|
||||
constexpr EnumFlag_t& operator&=(EnumFlag_t right)
|
||||
constexpr EnumFlag& operator&=(EnumFlag right)
|
||||
{
|
||||
_value &= right._value;
|
||||
return *this;
|
||||
}
|
||||
|
||||
constexpr friend EnumFlag_t operator&(EnumFlag_t left, EnumFlag_t right)
|
||||
constexpr friend EnumFlag operator&(EnumFlag left, EnumFlag right)
|
||||
{
|
||||
return left &= right;
|
||||
}
|
||||
|
||||
constexpr EnumFlag_t& operator|=(EnumFlag_t right)
|
||||
constexpr EnumFlag& operator|=(EnumFlag right)
|
||||
{
|
||||
_value |= right._value;
|
||||
return *this;
|
||||
}
|
||||
|
||||
constexpr friend EnumFlag_t operator|(EnumFlag_t left, EnumFlag_t right)
|
||||
constexpr friend EnumFlag operator|(EnumFlag left, EnumFlag right)
|
||||
{
|
||||
return left |= right;
|
||||
}
|
||||
|
||||
constexpr EnumFlag_t operator~() const
|
||||
constexpr EnumFlag operator~() const
|
||||
{
|
||||
return static_cast<T>(~static_cast<std::underlying_type_t<T>>(_value));
|
||||
}
|
||||
|
||||
constexpr void RemoveFlag(EnumFlag_t flag)
|
||||
constexpr void RemoveFlag(EnumFlag flag)
|
||||
{
|
||||
_value &= ~flag._value;
|
||||
}
|
||||
|
||||
@@ -1147,7 +1147,7 @@ void AuctionHouseObject::Update()
|
||||
}
|
||||
|
||||
void AuctionHouseObject::BuildListBuckets(WorldPackets::AuctionHouse::AuctionListBucketsResult& listBucketsResult, Player* player,
|
||||
std::wstring const& name, uint8 minLevel, uint8 maxLevel, EnumFlag_t<AuctionHouseFilterMask> filters, Optional<AuctionSearchClassFilters> const& classFilters,
|
||||
std::wstring const& name, uint8 minLevel, uint8 maxLevel, EnumFlag<AuctionHouseFilterMask> filters, Optional<AuctionSearchClassFilters> const& classFilters,
|
||||
uint8 const* knownPetBits, std::size_t knownPetBitsCount, uint8 maxKnownPetLevel, uint32 offset, WorldPackets::AuctionHouse::AuctionSortDef const* sorts, std::size_t sortCount)
|
||||
{
|
||||
std::unordered_set<uint32> knownAppearanceIds;
|
||||
|
||||
@@ -111,7 +111,7 @@ enum class AuctionHouseFilterMask : uint32
|
||||
ArtifactQuality = 0x400,
|
||||
};
|
||||
|
||||
namespace EnumFlag { template<> struct IsFlag<AuctionHouseFilterMask> : std::true_type { }; }
|
||||
DEFINE_ENUM_FLAG(AuctionHouseFilterMask);
|
||||
|
||||
enum class AuctionHouseSortOrder : uint8
|
||||
{
|
||||
@@ -295,7 +295,7 @@ public:
|
||||
void Update();
|
||||
|
||||
void BuildListBuckets(WorldPackets::AuctionHouse::AuctionListBucketsResult& listBucketsResult, Player* player,
|
||||
std::wstring const& name, uint8 minLevel, uint8 maxLevel, EnumFlag_t<AuctionHouseFilterMask> filters, Optional<AuctionSearchClassFilters> const& classFilters,
|
||||
std::wstring const& name, uint8 minLevel, uint8 maxLevel, EnumFlag<AuctionHouseFilterMask> filters, Optional<AuctionSearchClassFilters> const& classFilters,
|
||||
uint8 const* knownPetBits, std::size_t knownPetBitsCount, uint8 maxKnownPetLevel,
|
||||
uint32 offset, WorldPackets::AuctionHouse::AuctionSortDef const* sorts, std::size_t sortCount);
|
||||
void BuildListBuckets(WorldPackets::AuctionHouse::AuctionListBucketsResult& listBucketsResult, Player* player,
|
||||
|
||||
@@ -131,7 +131,7 @@ enum class ObjectGuidSequenceSource
|
||||
Map = 0x4
|
||||
};
|
||||
|
||||
namespace EnumFlag { template<> struct IsFlag<ObjectGuidSequenceSource> : std::true_type { }; }
|
||||
DEFINE_ENUM_FLAG(ObjectGuidSequenceSource);
|
||||
|
||||
enum class ObjectGuidFormatType
|
||||
{
|
||||
@@ -156,14 +156,14 @@ enum class ObjectGuidFormatType
|
||||
template<HighGuid high>
|
||||
struct ObjectGuidTraits
|
||||
{
|
||||
static constexpr EnumFlag_t<ObjectGuidSequenceSource> SequenceSource = ObjectGuidSequenceSource::None;
|
||||
static constexpr EnumFlag<ObjectGuidSequenceSource> SequenceSource = ObjectGuidSequenceSource::None;
|
||||
using Format = std::integral_constant<ObjectGuidFormatType, ObjectGuidFormatType::Null>;
|
||||
};
|
||||
|
||||
#define MAKE_GUID_TRAIT(high, sequence, format) \
|
||||
template<> struct ObjectGuidTraits<high> \
|
||||
{ \
|
||||
static constexpr EnumFlag_t<ObjectGuidSequenceSource> SequenceSource = sequence; \
|
||||
static constexpr EnumFlag<ObjectGuidSequenceSource> SequenceSource = sequence; \
|
||||
using Format = std::integral_constant<ObjectGuidFormatType, format>; \
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,8 @@ namespace UF
|
||||
Empath = 0x08
|
||||
};
|
||||
|
||||
DEFINE_ENUM_FLAG(UpdateFieldFlag);
|
||||
|
||||
template<typename T, uint32 BlockBit, uint32 Bit>
|
||||
class UpdateField;
|
||||
|
||||
@@ -819,6 +821,4 @@ namespace UF
|
||||
};
|
||||
}
|
||||
|
||||
namespace EnumFlag { template<> struct IsFlag<UF::UpdateFieldFlag> : std::true_type { }; }
|
||||
|
||||
#endif // UpdateField_h__
|
||||
|
||||
@@ -30,14 +30,14 @@
|
||||
|
||||
namespace UF
|
||||
{
|
||||
void ObjectData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const
|
||||
void ObjectData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const
|
||||
{
|
||||
data << int32(EntryID);
|
||||
data << uint32(ViewerDependentValue<DynamicFlagsTag>::GetValue(DynamicFlags, owner, receiver));
|
||||
data << float(Scale);
|
||||
}
|
||||
|
||||
void ObjectData::WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const
|
||||
void ObjectData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const
|
||||
{
|
||||
WriteUpdate(data, _changesMask, false, owner, receiver);
|
||||
}
|
||||
@@ -185,7 +185,7 @@ void SocketedGem::ClearChangesMask()
|
||||
_changesMask.ResetAll();
|
||||
}
|
||||
|
||||
void ItemData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const
|
||||
void ItemData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const
|
||||
{
|
||||
data << uint32(BonusListIDs->size());
|
||||
for (std::size_t i = 0; i < BonusListIDs->size(); ++i)
|
||||
@@ -247,20 +247,20 @@ void ItemData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVi
|
||||
}
|
||||
}
|
||||
|
||||
void ItemData::WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const
|
||||
void ItemData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const
|
||||
{
|
||||
UpdateMask<40> allowedMaskForTarget({ 0xFC0149FFu, 0x000000FFu });
|
||||
AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
|
||||
WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver);
|
||||
}
|
||||
|
||||
void ItemData::AppendAllowedFieldsMaskForFlag(UpdateMask<40>& allowedMaskForTarget, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
void ItemData::AppendAllowedFieldsMaskForFlag(UpdateMask<40>& allowedMaskForTarget, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
{
|
||||
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner))
|
||||
allowedMaskForTarget |= { 0x03FEB600u, 0x00000000u };
|
||||
}
|
||||
|
||||
void ItemData::FilterDisallowedFieldsMaskForFlag(UpdateMask<40>& changesMask, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
void ItemData::FilterDisallowedFieldsMaskForFlag(UpdateMask<40>& changesMask, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
{
|
||||
if (!fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner))
|
||||
changesMask &= { 0xFC0149FFu, 0xFFFFFFFFu };
|
||||
@@ -451,7 +451,7 @@ void ItemData::ClearChangesMask()
|
||||
_changesMask.ResetAll();
|
||||
}
|
||||
|
||||
void ContainerData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Bag const* owner, Player const* receiver) const
|
||||
void ContainerData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Bag const* owner, Player const* receiver) const
|
||||
{
|
||||
for (std::size_t i = 0; i < 36; ++i)
|
||||
{
|
||||
@@ -460,7 +460,7 @@ void ContainerData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fi
|
||||
data << uint32(NumSlots);
|
||||
}
|
||||
|
||||
void ContainerData::WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Bag const* owner, Player const* receiver) const
|
||||
void ContainerData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Bag const* owner, Player const* receiver) const
|
||||
{
|
||||
WriteUpdate(data, _changesMask, false, owner, receiver);
|
||||
}
|
||||
@@ -499,7 +499,7 @@ void ContainerData::ClearChangesMask()
|
||||
_changesMask.ResetAll();
|
||||
}
|
||||
|
||||
void AzeriteEmpoweredItemData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, AzeriteEmpoweredItem const* owner, Player const* receiver) const
|
||||
void AzeriteEmpoweredItemData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, AzeriteEmpoweredItem const* owner, Player const* receiver) const
|
||||
{
|
||||
for (std::size_t i = 0; i < 5; ++i)
|
||||
{
|
||||
@@ -507,7 +507,7 @@ void AzeriteEmpoweredItemData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFi
|
||||
}
|
||||
}
|
||||
|
||||
void AzeriteEmpoweredItemData::WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, AzeriteEmpoweredItem const* owner, Player const* receiver) const
|
||||
void AzeriteEmpoweredItemData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, AzeriteEmpoweredItem const* owner, Player const* receiver) const
|
||||
{
|
||||
WriteUpdate(data, _changesMask, false, owner, receiver);
|
||||
}
|
||||
@@ -603,7 +603,7 @@ void SelectedAzeriteEssences::ClearChangesMask()
|
||||
_changesMask.ResetAll();
|
||||
}
|
||||
|
||||
void AzeriteItemData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, AzeriteItem const* owner, Player const* receiver) const
|
||||
void AzeriteItemData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, AzeriteItem const* owner, Player const* receiver) const
|
||||
{
|
||||
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner))
|
||||
{
|
||||
@@ -630,20 +630,20 @@ void AzeriteItemData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag>
|
||||
}
|
||||
}
|
||||
|
||||
void AzeriteItemData::WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, AzeriteItem const* owner, Player const* receiver) const
|
||||
void AzeriteItemData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, AzeriteItem const* owner, Player const* receiver) const
|
||||
{
|
||||
UpdateMask<9> allowedMaskForTarget({ 0x0000000Fu });
|
||||
AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
|
||||
WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver);
|
||||
}
|
||||
|
||||
void AzeriteItemData::AppendAllowedFieldsMaskForFlag(UpdateMask<9>& allowedMaskForTarget, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
void AzeriteItemData::AppendAllowedFieldsMaskForFlag(UpdateMask<9>& allowedMaskForTarget, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
{
|
||||
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner))
|
||||
allowedMaskForTarget |= { 0x000001F0u };
|
||||
}
|
||||
|
||||
void AzeriteItemData::FilterDisallowedFieldsMaskForFlag(UpdateMask<9>& changesMask, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
void AzeriteItemData::FilterDisallowedFieldsMaskForFlag(UpdateMask<9>& changesMask, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
{
|
||||
if (!fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner))
|
||||
changesMask &= { 0xFFFFFE0Fu };
|
||||
@@ -811,7 +811,7 @@ void PassiveSpellHistory::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask,
|
||||
data << int32(AuraSpellID);
|
||||
}
|
||||
|
||||
void UnitData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Unit const* owner, Player const* receiver) const
|
||||
void UnitData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Unit const* owner, Player const* receiver) const
|
||||
{
|
||||
data << int32(ViewerDependentValue<DisplayIDTag>::GetValue(DisplayID, owner, receiver));
|
||||
for (std::size_t i = 0; i < 2; ++i)
|
||||
@@ -1007,14 +1007,14 @@ void UnitData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVi
|
||||
}
|
||||
}
|
||||
|
||||
void UnitData::WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Unit const* owner, Player const* receiver) const
|
||||
void UnitData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Unit const* owner, Player const* receiver) const
|
||||
{
|
||||
UpdateMask<192> allowedMaskForTarget({ 0xFFFFEFFFu, 0xFC3FBFFFu, 0x0001EFFFu, 0xFFBFFFF9u, 0x003F8007u, 0x00000000u });
|
||||
AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
|
||||
WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver);
|
||||
}
|
||||
|
||||
void UnitData::AppendAllowedFieldsMaskForFlag(UpdateMask<192>& allowedMaskForTarget, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
void UnitData::AppendAllowedFieldsMaskForFlag(UpdateMask<192>& allowedMaskForTarget, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
{
|
||||
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner))
|
||||
allowedMaskForTarget |= { 0x00001000u, 0x03C04000u, 0xFFFE1000u, 0x00400006u, 0xFFC07FF8u, 0xFFFFFFFFu };
|
||||
@@ -1024,7 +1024,7 @@ void UnitData::AppendAllowedFieldsMaskForFlag(UpdateMask<192>& allowedMaskForTar
|
||||
allowedMaskForTarget |= { 0x00000000u, 0x03C00000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x000007F8u };
|
||||
}
|
||||
|
||||
void UnitData::FilterDisallowedFieldsMaskForFlag(UpdateMask<192>& changesMask, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
void UnitData::FilterDisallowedFieldsMaskForFlag(UpdateMask<192>& changesMask, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
{
|
||||
if (!fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner))
|
||||
changesMask &= { 0xFFFFEFFFu, 0xFC3FBFFFu, 0x0001EFFFu, 0xFFBFFFF9u, 0x003F8007u, 0x00000000u };
|
||||
@@ -1907,7 +1907,7 @@ void ArenaCooldown::ClearChangesMask()
|
||||
_changesMask.ResetAll();
|
||||
}
|
||||
|
||||
void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const
|
||||
void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const
|
||||
{
|
||||
data << DuelArbiter;
|
||||
data << WowAccount;
|
||||
@@ -1980,20 +1980,20 @@ void PlayerData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> field
|
||||
data.FlushBits();
|
||||
}
|
||||
|
||||
void PlayerData::WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const
|
||||
void PlayerData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const
|
||||
{
|
||||
UpdateMask<192> allowedMaskForTarget({ 0xFFFFFFF5u, 0x000001FFu, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFF80u });
|
||||
AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
|
||||
WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver);
|
||||
}
|
||||
|
||||
void PlayerData::AppendAllowedFieldsMaskForFlag(UpdateMask<192>& allowedMaskForTarget, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
void PlayerData::AppendAllowedFieldsMaskForFlag(UpdateMask<192>& allowedMaskForTarget, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
{
|
||||
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::PartyMember))
|
||||
allowedMaskForTarget |= { 0x0000000Au, 0xFFFFFE00u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x0000007Fu };
|
||||
}
|
||||
|
||||
void PlayerData::FilterDisallowedFieldsMaskForFlag(UpdateMask<192>& changesMask, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
void PlayerData::FilterDisallowedFieldsMaskForFlag(UpdateMask<192>& changesMask, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const
|
||||
{
|
||||
if (!fieldVisibilityFlags.HasFlag(UpdateFieldFlag::PartyMember))
|
||||
changesMask &= { 0xFFFFFFF5u, 0x000001FFu, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFF80u };
|
||||
@@ -2604,7 +2604,7 @@ void QuestSession::ClearChangesMask()
|
||||
_changesMask.ResetAll();
|
||||
}
|
||||
|
||||
void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const
|
||||
void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const
|
||||
{
|
||||
for (std::size_t i = 0; i < 199; ++i)
|
||||
{
|
||||
@@ -2847,7 +2847,7 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag>
|
||||
data.FlushBits();
|
||||
}
|
||||
|
||||
void ActivePlayerData::WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const
|
||||
void ActivePlayerData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const
|
||||
{
|
||||
WriteUpdate(data, _changesMask, false, owner, receiver);
|
||||
}
|
||||
@@ -3812,7 +3812,7 @@ void ActivePlayerData::ClearChangesMask()
|
||||
_changesMask.ResetAll();
|
||||
}
|
||||
|
||||
void GameObjectData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const
|
||||
void GameObjectData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const
|
||||
{
|
||||
data << int32(DisplayID);
|
||||
data << uint32(SpellVisualID);
|
||||
@@ -3846,7 +3846,7 @@ void GameObjectData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> f
|
||||
}
|
||||
}
|
||||
|
||||
void GameObjectData::WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const
|
||||
void GameObjectData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const
|
||||
{
|
||||
WriteUpdate(data, _changesMask, false, owner, receiver);
|
||||
}
|
||||
@@ -3988,7 +3988,7 @@ void GameObjectData::ClearChangesMask()
|
||||
_changesMask.ResetAll();
|
||||
}
|
||||
|
||||
void DynamicObjectData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, DynamicObject const* owner, Player const* receiver) const
|
||||
void DynamicObjectData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, DynamicObject const* owner, Player const* receiver) const
|
||||
{
|
||||
data << Caster;
|
||||
data << int32(SpellXSpellVisualID);
|
||||
@@ -3998,7 +3998,7 @@ void DynamicObjectData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag
|
||||
data << uint8(Type);
|
||||
}
|
||||
|
||||
void DynamicObjectData::WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, DynamicObject const* owner, Player const* receiver) const
|
||||
void DynamicObjectData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, DynamicObject const* owner, Player const* receiver) const
|
||||
{
|
||||
WriteUpdate(data, _changesMask, false, owner, receiver);
|
||||
}
|
||||
@@ -4048,7 +4048,7 @@ void DynamicObjectData::ClearChangesMask()
|
||||
_changesMask.ResetAll();
|
||||
}
|
||||
|
||||
void CorpseData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Corpse const* owner, Player const* receiver) const
|
||||
void CorpseData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Corpse const* owner, Player const* receiver) const
|
||||
{
|
||||
data << uint32(DynamicFlags);
|
||||
data << Owner;
|
||||
@@ -4075,7 +4075,7 @@ void CorpseData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> field
|
||||
}
|
||||
}
|
||||
|
||||
void CorpseData::WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Corpse const* owner, Player const* receiver) const
|
||||
void CorpseData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Corpse const* owner, Player const* receiver) const
|
||||
{
|
||||
WriteUpdate(data, _changesMask, false, owner, receiver);
|
||||
}
|
||||
@@ -4256,7 +4256,7 @@ void ScaleCurve::ClearChangesMask()
|
||||
_changesMask.ResetAll();
|
||||
}
|
||||
|
||||
void AreaTriggerData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const
|
||||
void AreaTriggerData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const
|
||||
{
|
||||
OverrideScaleCurve->WriteCreate(data, owner, receiver);
|
||||
data << Caster;
|
||||
@@ -4273,7 +4273,7 @@ void AreaTriggerData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag>
|
||||
ExtraScaleCurve->WriteCreate(data, owner, receiver);
|
||||
}
|
||||
|
||||
void AreaTriggerData::WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const
|
||||
void AreaTriggerData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const
|
||||
{
|
||||
WriteUpdate(data, _changesMask, false, owner, receiver);
|
||||
}
|
||||
@@ -4358,7 +4358,7 @@ void AreaTriggerData::ClearChangesMask()
|
||||
_changesMask.ResetAll();
|
||||
}
|
||||
|
||||
void SceneObjectData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const
|
||||
void SceneObjectData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const
|
||||
{
|
||||
data << int32(ScriptPackageID);
|
||||
data << uint32(RndSeedVal);
|
||||
@@ -4366,7 +4366,7 @@ void SceneObjectData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag>
|
||||
data << uint32(SceneType);
|
||||
}
|
||||
|
||||
void SceneObjectData::WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const
|
||||
void SceneObjectData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const
|
||||
{
|
||||
WriteUpdate(data, _changesMask, false, owner, receiver);
|
||||
}
|
||||
@@ -4444,7 +4444,7 @@ void ConversationActor::WriteUpdate(ByteBuffer& data, bool ignoreChangesMask, Co
|
||||
data.FlushBits();
|
||||
}
|
||||
|
||||
void ConversationData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const
|
||||
void ConversationData::WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const
|
||||
{
|
||||
data << uint32(Lines->size());
|
||||
data << int32(LastLineEndTime);
|
||||
@@ -4460,7 +4460,7 @@ void ConversationData::WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag>
|
||||
}
|
||||
}
|
||||
|
||||
void ConversationData::WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const
|
||||
void ConversationData::WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const
|
||||
{
|
||||
WriteUpdate(data, _changesMask, false, owner, receiver);
|
||||
}
|
||||
|
||||
@@ -48,8 +48,8 @@ struct ObjectData : public IsUpdateFieldStructureTag, public HasChangesMask<4>
|
||||
struct DynamicFlagsTag : ViewerDependentValueTag<uint32> {};
|
||||
UpdateField<float, 0, 3> Scale;
|
||||
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const;
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, UpdateMask<4> const& changesMask, bool ignoreNestedChangesMask, Object const* owner, Player const* receiver) const;
|
||||
void ClearChangesMask();
|
||||
};
|
||||
@@ -111,11 +111,11 @@ struct ItemData : public IsUpdateFieldStructureTag, public HasChangesMask<40>
|
||||
UpdateFieldArray<int32, 5, 20, 21> SpellCharges;
|
||||
UpdateFieldArray<UF::ItemEnchantment, 13, 26, 27> Enchantment;
|
||||
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const;
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, UpdateMask<40> const& changesMask, bool ignoreNestedChangesMask, Item const* owner, Player const* receiver) const;
|
||||
void AppendAllowedFieldsMaskForFlag(UpdateMask<40>& allowedMaskForTarget, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void FilterDisallowedFieldsMaskForFlag(UpdateMask<40>& changesMask, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void AppendAllowedFieldsMaskForFlag(UpdateMask<40>& allowedMaskForTarget, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void FilterDisallowedFieldsMaskForFlag(UpdateMask<40>& changesMask, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void ClearChangesMask();
|
||||
};
|
||||
|
||||
@@ -124,8 +124,8 @@ struct ContainerData : public IsUpdateFieldStructureTag, public HasChangesMask<3
|
||||
UpdateField<uint32, 0, 1> NumSlots;
|
||||
UpdateFieldArray<ObjectGuid, 36, 2, 3> Slots;
|
||||
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Bag const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Bag const* owner, Player const* receiver) const;
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Bag const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Bag const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, UpdateMask<39> const& changesMask, bool ignoreNestedChangesMask, Bag const* owner, Player const* receiver) const;
|
||||
void ClearChangesMask();
|
||||
};
|
||||
@@ -134,8 +134,8 @@ struct AzeriteEmpoweredItemData : public IsUpdateFieldStructureTag, public HasCh
|
||||
{
|
||||
UpdateFieldArray<int32, 5, 0, 1> Selections;
|
||||
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, AzeriteEmpoweredItem const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, AzeriteEmpoweredItem const* owner, Player const* receiver) const;
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, AzeriteEmpoweredItem const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, AzeriteEmpoweredItem const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, UpdateMask<6> const& changesMask, bool ignoreNestedChangesMask, AzeriteEmpoweredItem const* owner, Player const* receiver) const;
|
||||
void ClearChangesMask();
|
||||
};
|
||||
@@ -171,11 +171,11 @@ struct AzeriteItemData : public IsUpdateFieldStructureTag, public HasChangesMask
|
||||
UpdateField<uint32, 0, 7> KnowledgeLevel;
|
||||
UpdateField<int32, 0, 8> DEBUGknowledgeWeek;
|
||||
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, AzeriteItem const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, AzeriteItem const* owner, Player const* receiver) const;
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, AzeriteItem const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, AzeriteItem const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, UpdateMask<9> const& changesMask, bool ignoreNestedChangesMask, AzeriteItem const* owner, Player const* receiver) const;
|
||||
void AppendAllowedFieldsMaskForFlag(UpdateMask<9>& allowedMaskForTarget, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void FilterDisallowedFieldsMaskForFlag(UpdateMask<9>& changesMask, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void AppendAllowedFieldsMaskForFlag(UpdateMask<9>& allowedMaskForTarget, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void FilterDisallowedFieldsMaskForFlag(UpdateMask<9>& changesMask, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void ClearChangesMask();
|
||||
};
|
||||
|
||||
@@ -342,11 +342,11 @@ struct UnitData : public IsUpdateFieldStructureTag, public HasChangesMask<192>
|
||||
UpdateFieldArray<int32, 7, 163, 178> PowerCostModifier;
|
||||
UpdateFieldArray<float, 7, 163, 185> PowerCostMultiplier;
|
||||
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Unit const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Unit const* owner, Player const* receiver) const;
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Unit const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Unit const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, UpdateMask<192> const& changesMask, bool ignoreNestedChangesMask, Unit const* owner, Player const* receiver) const;
|
||||
void AppendAllowedFieldsMaskForFlag(UpdateMask<192>& allowedMaskForTarget, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void FilterDisallowedFieldsMaskForFlag(UpdateMask<192>& changesMask, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void AppendAllowedFieldsMaskForFlag(UpdateMask<192>& allowedMaskForTarget, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void FilterDisallowedFieldsMaskForFlag(UpdateMask<192>& changesMask, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void ClearChangesMask();
|
||||
};
|
||||
|
||||
@@ -421,11 +421,11 @@ struct PlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<192>
|
||||
UpdateFieldArray<UF::VisibleItem, 19, 167, 168> VisibleItems;
|
||||
UpdateFieldArray<float, 4, 187, 188> AvgItemLevel;
|
||||
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const;
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, UpdateMask<192> const& changesMask, bool ignoreNestedChangesMask, Player const* owner, Player const* receiver) const;
|
||||
void AppendAllowedFieldsMaskForFlag(UpdateMask<192>& allowedMaskForTarget, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void FilterDisallowedFieldsMaskForFlag(UpdateMask<192>& changesMask, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void AppendAllowedFieldsMaskForFlag(UpdateMask<192>& allowedMaskForTarget, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void FilterDisallowedFieldsMaskForFlag(UpdateMask<192>& changesMask, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags) const;
|
||||
void ClearChangesMask();
|
||||
bool IsQuestLogChangesMaskSkipped() const { return false; } // bandwidth savings aren't worth the cpu time
|
||||
};
|
||||
@@ -651,8 +651,8 @@ struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMas
|
||||
UpdateFieldArray<uint32, 7, 610, 611> BankBagSlotFlags;
|
||||
UpdateFieldArray<uint64, 875, 618, 619> QuestCompleted;
|
||||
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const;
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, UpdateMask<1494> const& changesMask, bool ignoreNestedChangesMask, Player const* owner, Player const* receiver) const;
|
||||
void ClearChangesMask();
|
||||
};
|
||||
@@ -682,8 +682,8 @@ struct GameObjectData : public IsUpdateFieldStructureTag, public HasChangesMask<
|
||||
UpdateField<uint32, 0, 18> ArtKit;
|
||||
UpdateField<uint32, 0, 19> CustomParam;
|
||||
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const;
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, UpdateMask<20> const& changesMask, bool ignoreNestedChangesMask, GameObject const* owner, Player const* receiver) const;
|
||||
void ClearChangesMask();
|
||||
};
|
||||
@@ -697,8 +697,8 @@ struct DynamicObjectData : public IsUpdateFieldStructureTag, public HasChangesMa
|
||||
UpdateField<uint32, 0, 5> CastTime;
|
||||
UpdateField<uint8, 0, 6> Type;
|
||||
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, DynamicObject const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, DynamicObject const* owner, Player const* receiver) const;
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, DynamicObject const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, DynamicObject const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, UpdateMask<7> const& changesMask, bool ignoreNestedChangesMask, DynamicObject const* owner, Player const* receiver) const;
|
||||
void ClearChangesMask();
|
||||
};
|
||||
@@ -723,8 +723,8 @@ struct CorpseData : public IsUpdateFieldStructureTag, public HasChangesMask<40>
|
||||
UpdateFieldArray<uint32, 19, 16, 17> Items;
|
||||
UpdateFieldArray<uint8, 3, 36, 37> CustomDisplayOption;
|
||||
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Corpse const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Corpse const* owner, Player const* receiver) const;
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Corpse const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Corpse const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, UpdateMask<40> const& changesMask, bool ignoreNestedChangesMask, Corpse const* owner, Player const* receiver) const;
|
||||
void ClearChangesMask();
|
||||
};
|
||||
@@ -757,8 +757,8 @@ struct AreaTriggerData : public IsUpdateFieldStructureTag, public HasChangesMask
|
||||
UpdateField<uint32, 0, 12> DecalPropertiesID;
|
||||
UpdateField<ObjectGuid, 0, 13> CreatingEffectGUID;
|
||||
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const;
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, AreaTrigger const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, UpdateMask<14> const& changesMask, bool ignoreNestedChangesMask, AreaTrigger const* owner, Player const* receiver) const;
|
||||
void ClearChangesMask();
|
||||
};
|
||||
@@ -770,8 +770,8 @@ struct SceneObjectData : public IsUpdateFieldStructureTag, public HasChangesMask
|
||||
UpdateField<ObjectGuid, 0, 3> CreatedBy;
|
||||
UpdateField<uint32, 0, 4> SceneType;
|
||||
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const;
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Object const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, UpdateMask<5> const& changesMask, bool ignoreNestedChangesMask, Object const* owner, Player const* receiver) const;
|
||||
void ClearChangesMask();
|
||||
};
|
||||
@@ -807,8 +807,8 @@ struct ConversationData : public IsUpdateFieldStructureTag, public HasChangesMas
|
||||
UpdateField<int32, 0, 3> LastLineEndTime;
|
||||
UpdateField<uint32, 0, 4> Field_1C;
|
||||
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag_t<UpdateFieldFlag> fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const;
|
||||
void WriteCreate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, EnumFlag<UpdateFieldFlag> fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const;
|
||||
void WriteUpdate(ByteBuffer& data, UpdateMask<5> const& changesMask, bool ignoreNestedChangesMask, Conversation const* owner, Player const* receiver) const;
|
||||
void ClearChangesMask();
|
||||
};
|
||||
|
||||
@@ -72,7 +72,7 @@ void CollectionMgr::LoadMountDefinitions()
|
||||
|
||||
namespace
|
||||
{
|
||||
EnumFlag_t<ToyFlags> GetToyFlags(bool isFavourite, bool hasFanfare)
|
||||
EnumFlag<ToyFlags> GetToyFlags(bool isFavourite, bool hasFanfare)
|
||||
{
|
||||
ToyFlags flags = ToyFlags::None;
|
||||
if (isFavourite)
|
||||
|
||||
@@ -62,9 +62,9 @@ enum class ToyFlags : uint32
|
||||
HasFanfare = 0x02
|
||||
};
|
||||
|
||||
namespace EnumFlag { template<> struct IsFlag<ToyFlags> : std::true_type { }; }
|
||||
DEFINE_ENUM_FLAG(ToyFlags);
|
||||
|
||||
typedef std::map<uint32, EnumFlag_t<ToyFlags>> ToyBoxContainer;
|
||||
typedef std::map<uint32, EnumFlag<ToyFlags>> ToyBoxContainer;
|
||||
typedef std::map<uint32, HeirloomData> HeirloomContainer;
|
||||
|
||||
enum MountStatusFlags : uint8
|
||||
|
||||
@@ -169,7 +169,7 @@ void PhaseShift::ModifyPhasesReferences(PhaseContainer::iterator itr, int32 refe
|
||||
|
||||
void PhaseShift::UpdateUnphasedFlag()
|
||||
{
|
||||
EnumFlag_t<PhaseShiftFlags> unphasedFlag = !Flags.HasFlag(PhaseShiftFlags::Inverse) ? PhaseShiftFlags::Unphased : PhaseShiftFlags::InverseUnphased;
|
||||
EnumFlag<PhaseShiftFlags> unphasedFlag = !Flags.HasFlag(PhaseShiftFlags::Inverse) ? PhaseShiftFlags::Unphased : PhaseShiftFlags::InverseUnphased;
|
||||
Flags &= ~(!Flags.HasFlag(PhaseShiftFlags::Inverse) ? PhaseShiftFlags::InverseUnphased : PhaseShiftFlags::Unphased);
|
||||
if (NonCosmeticReferences && !DefaultReferences)
|
||||
Flags &= ~unphasedFlag;
|
||||
|
||||
@@ -48,11 +48,8 @@ enum class PhaseFlags : uint16
|
||||
Personal = 0x2
|
||||
};
|
||||
|
||||
namespace EnumFlag
|
||||
{
|
||||
template<> struct IsFlag<PhaseShiftFlags> : std::true_type { };
|
||||
template<> struct IsFlag<PhaseFlags> : std::true_type { };
|
||||
}
|
||||
DEFINE_ENUM_FLAG(PhaseShiftFlags);
|
||||
DEFINE_ENUM_FLAG(PhaseFlags);
|
||||
|
||||
class TC_GAME_API PhaseShift
|
||||
{
|
||||
@@ -63,7 +60,7 @@ public:
|
||||
: Id(id), Flags(flags), References(0), AreaConditions(conditions) { }
|
||||
|
||||
uint16 Id;
|
||||
EnumFlag_t<PhaseFlags> Flags;
|
||||
EnumFlag<PhaseFlags> Flags;
|
||||
int32 References;
|
||||
std::vector<Condition*> const* AreaConditions;
|
||||
bool operator<(PhaseRef const& right) const { return Id < right.Id; }
|
||||
@@ -113,7 +110,7 @@ public:
|
||||
protected:
|
||||
friend class PhasingHandler;
|
||||
|
||||
EnumFlag_t<PhaseShiftFlags> Flags;
|
||||
EnumFlag<PhaseShiftFlags> Flags;
|
||||
ObjectGuid PersonalGuid;
|
||||
PhaseContainer Phases;
|
||||
VisibleMapIdContainer VisibleMapIds;
|
||||
|
||||
@@ -438,7 +438,7 @@ void PhasingHandler::InitDbPhaseShift(PhaseShift& phaseShift, uint8 phaseUseFlag
|
||||
phaseShift.ClearPhases();
|
||||
phaseShift.IsDbPhaseShift = true;
|
||||
|
||||
EnumFlag_t<PhaseShiftFlags> flags = PhaseShiftFlags::None;
|
||||
EnumFlag<PhaseShiftFlags> flags = PhaseShiftFlags::None;
|
||||
if (phaseUseFlags & PHASE_USE_FLAGS_ALWAYS_VISIBLE)
|
||||
flags |= PhaseShiftFlags::AlwaysVisible | PhaseShiftFlags::Unphased;
|
||||
if (phaseUseFlags & PHASE_USE_FLAGS_INVERSE)
|
||||
|
||||
Reference in New Issue
Block a user