From 22d29ce0494c32a73e20646d2320a44a5eb2e633 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 10 Jul 2016 11:27:38 +0200 Subject: Core/Players: Fixed crash happening during character creation added in previous commit --- src/server/game/Entities/Item/Item.cpp | 2 +- src/server/game/Entities/Object/Object.cpp | 8 ++++++++ src/server/game/Entities/Object/Object.h | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) (limited to 'src') 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 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 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); -- cgit v1.2.3