From b0505593641b0f8f5cae4a803e57c2e763fe71f6 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 21 Nov 2020 12:18:22 +0100 Subject: Core/Objects: Rename ValueType to value_type in updatefield types to be compatible with stl containers --- src/server/game/Entities/Object/Object.h | 20 ++--- .../game/Entities/Object/Updates/UpdateField.h | 89 ++++++++++++---------- .../Object/Updates/ViewerDependentValues.h | 40 +++++----- 3 files changed, 77 insertions(+), 72 deletions(-) (limited to 'src/server') diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 713314bcfc4..3a5f06062ee 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -88,19 +88,19 @@ struct CreateObjectBits namespace UF { template - inline bool SetUpdateFieldValue(UpdateFieldSetter& setter, typename UpdateFieldSetter::ValueType&& value) + inline bool SetUpdateFieldValue(UpdateFieldSetter& setter, typename UpdateFieldSetter::value_type&& value) { return setter.SetValue(std::move(value)); } template - inline typename DynamicUpdateFieldSetter::NewValueType AddDynamicUpdateFieldValue(DynamicUpdateFieldSetter& setter) + inline typename DynamicUpdateFieldSetter::insert_result AddDynamicUpdateFieldValue(DynamicUpdateFieldSetter& setter) { return setter.AddValue(); } template - inline typename DynamicUpdateFieldSetter::NewValueType InsertDynamicUpdateFieldValue(DynamicUpdateFieldSetter& setter, uint32 index) + inline typename DynamicUpdateFieldSetter::insert_result InsertDynamicUpdateFieldValue(DynamicUpdateFieldSetter& setter, uint32 index) { return setter.InsertValue(index); } @@ -217,35 +217,35 @@ class TC_GAME_API Object void _Create(ObjectGuid const& guid); template - void SetUpdateFieldValue(UF::UpdateFieldSetter setter, typename UF::UpdateFieldSetter::ValueType value) + void SetUpdateFieldValue(UF::UpdateFieldSetter setter, typename UF::UpdateFieldSetter::value_type value) { if (UF::SetUpdateFieldValue(setter, std::move(value))) AddToObjectUpdateIfNeeded(); } template - void SetUpdateFieldFlagValue(UF::UpdateFieldSetter setter, typename UF::UpdateFieldSetter::ValueType flag) + void SetUpdateFieldFlagValue(UF::UpdateFieldSetter setter, typename UF::UpdateFieldSetter::value_type flag) { static_assert(std::is_integral::value, "SetUpdateFieldFlagValue must be used with integral types"); SetUpdateFieldValue(setter, setter.GetValue() | flag); } template - void RemoveUpdateFieldFlagValue(UF::UpdateFieldSetter setter, typename UF::UpdateFieldSetter::ValueType flag) + void RemoveUpdateFieldFlagValue(UF::UpdateFieldSetter setter, typename UF::UpdateFieldSetter::value_type flag) { static_assert(std::is_integral::value, "RemoveUpdateFieldFlagValue must be used with integral types"); SetUpdateFieldValue(setter, setter.GetValue() & ~flag); } template - typename UF::DynamicUpdateFieldSetter::NewValueType AddDynamicUpdateFieldValue(UF::DynamicUpdateFieldSetter setter) + typename UF::DynamicUpdateFieldSetter::insert_result AddDynamicUpdateFieldValue(UF::DynamicUpdateFieldSetter setter) { AddToObjectUpdateIfNeeded(); return UF::AddDynamicUpdateFieldValue(setter); } template - typename UF::DynamicUpdateFieldSetter::NewValueType InsertDynamicUpdateFieldValue(UF::DynamicUpdateFieldSetter setter, uint32 index) + typename UF::DynamicUpdateFieldSetter::insert_result InsertDynamicUpdateFieldValue(UF::DynamicUpdateFieldSetter setter, uint32 index) { AddToObjectUpdateIfNeeded(); return UF::InsertDynamicUpdateFieldValue(setter, index); @@ -274,14 +274,14 @@ class TC_GAME_API Object // stat system helpers template - void SetUpdateFieldStatValue(UF::UpdateFieldSetter setter, typename UF::UpdateFieldSetter::ValueType value) + void SetUpdateFieldStatValue(UF::UpdateFieldSetter setter, typename UF::UpdateFieldSetter::value_type value) { static_assert(std::is_arithmetic::value, "SetUpdateFieldStatValue must be used with arithmetic types"); SetUpdateFieldValue(setter, std::max(value, T(0))); } template - void ApplyModUpdateFieldValue(UF::UpdateFieldSetter setter, typename UF::UpdateFieldSetter::ValueType mod, bool apply) + void ApplyModUpdateFieldValue(UF::UpdateFieldSetter setter, typename UF::UpdateFieldSetter::value_type mod, bool apply) { static_assert(std::is_arithmetic::value, "SetUpdateFieldStatValue must be used with arithmetic types"); diff --git a/src/server/game/Entities/Object/Updates/UpdateField.h b/src/server/game/Entities/Object/Updates/UpdateField.h index 33fbfa07a67..1c9757842eb 100644 --- a/src/server/game/Entities/Object/Updates/UpdateField.h +++ b/src/server/game/Entities/Object/Updates/UpdateField.h @@ -86,10 +86,10 @@ namespace UF template struct UpdateFieldSetter { - using ValueType = T; + using value_type = T; template - friend bool SetUpdateFieldValue(UpdateFieldSetter& setter, typename UpdateFieldSetter::ValueType&& value); + friend bool SetUpdateFieldValue(UpdateFieldSetter& setter, typename UpdateFieldSetter::value_type&& value); UpdateFieldSetter(T& value) : _value(value) { @@ -118,7 +118,7 @@ namespace UF template struct UpdateFieldPublicSetter { - using ValueType = T; + using value_type = T; UpdateFieldPublicSetter(T& value) : _value(value) { @@ -141,14 +141,14 @@ namespace UF template struct DynamicUpdateFieldSetter { - using ValueType = T; - using NewValueType = std::conditional_t::value, MutableFieldReference, T&>; + using value_type = T; + using insert_result = std::conditional_t::value, MutableFieldReference, T&>; template - friend typename DynamicUpdateFieldSetter::NewValueType AddDynamicUpdateFieldValue(DynamicUpdateFieldSetter& setter); + friend typename DynamicUpdateFieldSetter::insert_result AddDynamicUpdateFieldValue(DynamicUpdateFieldSetter& setter); template - friend typename DynamicUpdateFieldSetter::NewValueType InsertDynamicUpdateFieldValue(DynamicUpdateFieldSetter& setter, uint32 index); + friend typename DynamicUpdateFieldSetter::insert_result InsertDynamicUpdateFieldValue(DynamicUpdateFieldSetter& setter, uint32 index); template friend void RemoveDynamicUpdateFieldValue(DynamicUpdateFieldSetter& setter, uint32 index); @@ -161,7 +161,7 @@ namespace UF } private: - NewValueType AddValue() + insert_result AddValue() { MarkChanged(_values.size()); _values.emplace_back(); @@ -170,7 +170,7 @@ namespace UF return { value }; } - NewValueType InsertValue(uint32 index) + insert_result InsertValue(uint32 index) { _values.emplace(_values.begin() + index); for (uint32 i = index; i < _values.size(); ++i) @@ -359,50 +359,50 @@ namespace UF template struct MutableNestedFieldReference { - using ValueType = typename T::ValueType; + using value_type = typename T::value_type; MutableNestedFieldReference(T& value) : _value(value) { } template - std::enable_if_t, U>::value, - std::conditional_t::value, - MutableFieldReference, - std::conditional_t::value, - MutableNestedFieldReference, - std::conditional_t, UpdateFieldSetter>>>> + std::enable_if_t, U>::value, + std::conditional_t::value, + MutableFieldReference, + std::conditional_t::value, + MutableNestedFieldReference, + std::conditional_t, UpdateFieldSetter>>>> ModifyValue() { return { _value._value }; } template - std::enable_if_t, U>::value, - std::conditional_t::value, - MutableFieldReference, - std::conditional_t::value, - MutableNestedFieldReference, - std::conditional_t, UpdateFieldSetter>>>> + std::enable_if_t, U>::value, + std::conditional_t::value, + MutableFieldReference, + std::conditional_t::value, + MutableNestedFieldReference, + std::conditional_t, UpdateFieldSetter>>>> ModifyValue(uint32 index) { return { _value._values[index] }; } template - std::enable_if_t, U>::value, DynamicUpdateFieldSetter> + std::enable_if_t, U>::value, DynamicUpdateFieldSetter> ModifyValue() { return { _value._values, _value._updateMask }; } template - std::enable_if_t, U>::value, - std::conditional_t::value, - MutableFieldReference, - std::conditional_t::value, - MutableNestedFieldReference, - std::conditional_t, UpdateFieldSetter>>>> + std::enable_if_t, U>::value, + std::conditional_t::value, + MutableFieldReference, + std::conditional_t::value, + MutableNestedFieldReference, + std::conditional_t, UpdateFieldSetter>>>> ModifyValue(uint32 index) { if (index >= _value.size()) @@ -417,19 +417,19 @@ namespace UF } template - std::enable_if_t, U>::value, OptionalUpdateFieldSetter> + std::enable_if_t, U>::value, OptionalUpdateFieldSetter> ModifyValue() { return { _value }; } template - std::enable_if_t, U>::value, - std::conditional_t::value, - MutableFieldReference, - std::conditional_t::value, - MutableNestedFieldReference, - std::conditional_t, UpdateFieldSetter>>>> + std::enable_if_t, U>::value, + std::conditional_t::value, + MutableFieldReference, + std::conditional_t::value, + MutableNestedFieldReference, + std::conditional_t, UpdateFieldSetter>>>> ModifyValue(uint32 /*dummy*/) { if (!_value.is_initialized()) @@ -697,7 +697,7 @@ namespace UF friend class UpdateFieldHolder; public: - using ValueType = T; + using value_type = T; operator T const& () const { @@ -739,7 +739,7 @@ namespace UF friend class HasChangesMask; public: - using ValueType = T; + using value_type = T; T const* begin() const { @@ -786,7 +786,12 @@ namespace UF friend class HasChangesMask; public: - using ValueType = T; + using value_type = T; + + T const* data() const + { + return _values.data(); + } typename std::vector::const_iterator begin() const { @@ -825,7 +830,7 @@ namespace UF template int32 FindIndexIf(Pred pred) const { - auto itr = std::find_if(_values.begin(), _values.end(), pred); + auto itr = std::find_if(_values.begin(), _values.end(), std::ref(pred)); if (itr != _values.end()) return int32(std::distance(_values.begin(), itr)); @@ -891,7 +896,7 @@ namespace UF friend struct OptionalUpdateFieldSetter; public: - using ValueType = T; + using value_type = T; using IsLarge = std::integral_constant; using StorageType = std::conditional_t, Optional>; @@ -961,7 +966,7 @@ namespace UF template struct ViewerDependentValueTag { - using ValueType = T; + using value_type = T; }; } diff --git a/src/server/game/Entities/Object/Updates/ViewerDependentValues.h b/src/server/game/Entities/Object/Updates/ViewerDependentValues.h index 834321320ef..db15672ce97 100644 --- a/src/server/game/Entities/Object/Updates/ViewerDependentValues.h +++ b/src/server/game/Entities/Object/Updates/ViewerDependentValues.h @@ -38,9 +38,9 @@ template<> class ViewerDependentValue { public: - using ValueType = UF::ObjectData::DynamicFlagsTag::ValueType; + using value_type = UF::ObjectData::DynamicFlagsTag::value_type; - static ValueType GetValue(ValueType dynamicFlags, Object const* object, Player const* receiver) + static value_type GetValue(value_type dynamicFlags, Object const* object, Player const* receiver) { if (Unit const* unit = object->ToUnit()) { @@ -106,9 +106,9 @@ template<> class ViewerDependentValue { public: - using ValueType = UF::UnitData::DisplayIDTag::ValueType; + using value_type = UF::UnitData::DisplayIDTag::value_type; - static ValueType GetValue(ValueType displayId, Unit const* unit, Player const* receiver) + static value_type GetValue(value_type displayId, Unit const* unit, Player const* receiver) { if (unit->IsCreature()) { @@ -137,9 +137,9 @@ template<> class ViewerDependentValue { public: - using ValueType = UF::UnitData::FactionTemplateTag::ValueType; + using value_type = UF::UnitData::FactionTemplateTag::value_type; - static ValueType GetValue(ValueType factionTemplate, Unit const* unit, Player const* receiver) + static value_type GetValue(value_type factionTemplate, Unit const* unit, Player const* receiver) { if (unit->IsControlledByPlayer() && receiver != unit && sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP) && unit->IsInRaidWith(receiver)) { @@ -158,9 +158,9 @@ template<> class ViewerDependentValue { public: - using ValueType = UF::UnitData::FlagsTag::ValueType; + using value_type = UF::UnitData::FlagsTag::value_type; - static ValueType GetValue(ValueType flags, Unit const* /*unit*/, Player const* receiver) + static value_type GetValue(value_type flags, Unit const* /*unit*/, Player const* receiver) { // Gamemasters should be always able to select units - remove not selectable flag if (receiver->IsGameMaster()) @@ -174,9 +174,9 @@ template<> class ViewerDependentValue { public: - using ValueType = UF::UnitData::AuraStateTag::ValueType; + using value_type = UF::UnitData::AuraStateTag::value_type; - static ValueType GetValue(ValueType /*auraState*/, Unit const* unit, Player const* receiver) + static value_type GetValue(value_type /*auraState*/, Unit const* unit, Player const* receiver) { // Check per caster aura states to not enable using a spell in client if specified aura is not by target return unit->BuildAuraStateUpdateForTarget(receiver); @@ -187,9 +187,9 @@ template<> class ViewerDependentValue { public: - using ValueType = UF::UnitData::PvpFlagsTag::ValueType; + using value_type = UF::UnitData::PvpFlagsTag::value_type; - static ValueType GetValue(ValueType pvpFlags, Unit const* unit, Player const* receiver) + static value_type GetValue(value_type pvpFlags, Unit const* unit, Player const* receiver) { if (unit->IsControlledByPlayer() && receiver != unit && sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP) && unit->IsInRaidWith(receiver)) { @@ -208,9 +208,9 @@ template<> class ViewerDependentValue { public: - using ValueType = UF::UnitData::NpcFlagsTag::ValueType; + using value_type = UF::UnitData::NpcFlagsTag::value_type; - static ValueType GetValue(ValueType npcFlag, uint32 i, Unit const* unit, Player const* receiver) + static value_type GetValue(value_type npcFlag, uint32 i, Unit const* unit, Player const* receiver) { if (i == 0 && unit->IsCreature() && !receiver->CanSeeSpellClickOn(unit->ToCreature())) npcFlag &= ~UNIT_NPC_FLAG_SPELLCLICK; @@ -223,9 +223,9 @@ template<> class ViewerDependentValue { public: - using ValueType = UF::GameObjectData::FlagsTag::ValueType; + using value_type = UF::GameObjectData::FlagsTag::value_type; - static ValueType GetValue(ValueType flags, GameObject const* gameObject, Player const* receiver) + static value_type GetValue(value_type flags, GameObject const* gameObject, Player const* receiver) { if (gameObject->GetGoType() == GAMEOBJECT_TYPE_CHEST) if (gameObject->GetGOInfo()->chest.usegrouplootrules && !gameObject->IsLootAllowedFor(receiver)) @@ -239,9 +239,9 @@ template<> class ViewerDependentValue { public: - using ValueType = UF::GameObjectData::LevelTag::ValueType; + using value_type = UF::GameObjectData::LevelTag::value_type; - static ValueType GetValue(ValueType level, GameObject const* gameObject, Player const* /*receiver*/) + static value_type GetValue(value_type level, GameObject const* gameObject, Player const* /*receiver*/) { bool isStoppableTransport = gameObject->GetGoType() == GAMEOBJECT_TYPE_TRANSPORT && !gameObject->GetGOValue()->Transport.StopFrames->empty(); return isStoppableTransport ? gameObject->GetGOValue()->Transport.PathProgress : level; @@ -252,9 +252,9 @@ template<> class ViewerDependentValue { public: - using ValueType = UF::GameObjectData::StateTag::ValueType; + using value_type = UF::GameObjectData::StateTag::value_type; - static ValueType GetValue(ValueType state, GameObject const* gameObject, Player const* /*receiver*/) + static value_type GetValue(value_type state, GameObject const* gameObject, Player const* /*receiver*/) { bool isStoppableTransport = gameObject->GetGoType() == GAMEOBJECT_TYPE_TRANSPORT && !gameObject->GetGOValue()->Transport.StopFrames->empty(); if (isStoppableTransport && gameObject->GetGoState() == GO_STATE_TRANSPORT_ACTIVE) -- cgit v1.2.3