aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Item/Item.cpp2
-rw-r--r--src/server/game/Entities/Object/Object.cpp8
-rw-r--r--src/server/game/Entities/Object/Object.h1
3 files changed, 10 insertions, 1 deletions
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
index 20efd3ae93d..565609fc561 100644
--- a/src/server/game/Entities/Item/Item.cpp
+++ b/src/server/game/Entities/Item/Item.cpp
@@ -1897,7 +1897,7 @@ uint32 Item::GetDisplayId() const
uint32 Item::GetModifier(ItemModifier modifier) const
{
- return GetDynamicValues(ITEM_DYNAMIC_FIELD_MODIFIERS)[modifier];
+ return GetDynamicValue(ITEM_DYNAMIC_FIELD_MODIFIERS, modifier);
}
void Item::SetModifier(ItemModifier modifier, uint32 value)
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 56538513a92..99a9cfd25d8 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -1339,6 +1339,14 @@ std::vector<uint32> const& Object::GetDynamicValues(uint16 index) const
return _dynamicValues[index];
}
+uint32 Object::GetDynamicValue(uint16 index, uint8 offset) const
+{
+ ASSERT(index < _dynamicValuesCount || PrintIndexError(index, false));
+ if (offset >= _dynamicValues[index].size())
+ return 0;
+ return _dynamicValues[index][offset];
+}
+
void Object::AddDynamicValue(uint16 index, uint32 value)
{
ASSERT(index < _dynamicValuesCount || PrintIndexError(index, false));
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index 4492a184895..ea3b5fc6f0a 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -168,6 +168,7 @@ class TC_GAME_API Object
void ApplyModFlag64(uint16 index, uint64 flag, bool apply);
std::vector<uint32> const& GetDynamicValues(uint16 index) const;
+ uint32 GetDynamicValue(uint16 index, uint8 offset) const;
void AddDynamicValue(uint16 index, uint32 value);
void RemoveDynamicValue(uint16 index, uint32 value);
void ClearDynamicValue(uint16 index);