diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp index 3615ede5105..e4795ce2344 100644 --- a/src/server/game/Groups/Group.cpp +++ b/src/server/game/Groups/Group.cpp @@ -1626,11 +1626,8 @@ DynamicObject* Group::GetMarkerGuidBySpell(uint32 spell) { for (DynObjectList::const_iterator i = m_dynObj.begin(); i != m_dynObj.end(); ++i) { - DynamicObject* dynObj = ObjectAccessor::GetObjectInWorld(*i, (DynamicObject*)NULL); - if (!dynObj) - continue; - - if (dynObj->GetEntry() == spell) + DynamicObject* dynObj = *i; + if (dynObj && dynObj->GetEntry() == spell) return dynObj; } } @@ -1652,7 +1649,7 @@ void Group::RemoveMarker() if (!dynObject) continue; - RemoveMarkerFromList(dynObject->GetGUID()); + RemoveMarkerFromList(dynObject); dynObject->RemoveFromWorld(); } } diff --git a/src/server/game/Groups/Group.h b/src/server/game/Groups/Group.h index e5ba3d1d83a..70a3215b33a 100644 --- a/src/server/game/Groups/Group.h +++ b/src/server/game/Groups/Group.h @@ -214,8 +214,8 @@ class TC_GAME_API Group uint32 GetMarkerMask() { return m_markerMask; } DynamicObject* GetMarkerGuidBySpell(uint32 spell); - void AddMarkerToList(ObjectGuid guid) { m_dynObj.push_back(guid); } - void RemoveMarkerFromList(ObjectGuid guid) { m_dynObj.remove(guid); } + void AddMarkerToList(DynamicObject* dynObj) { m_dynObj.push_back(dynObj); } + void RemoveMarkerFromList(DynamicObject* dynObj) { m_dynObj.remove(dynObj); } void RemoveAllMarkerFromList() { m_dynObj.clear(); } void RemoveMarker(); @@ -380,7 +380,7 @@ class TC_GAME_API Group uint32 m_maxEnchantingLevel; uint32 m_dbStoreId; // Represents the ID used in database (Can be reused by other groups if group was disbanded) - typedef std::list DynObjectList; + typedef std::list DynObjectList; DynObjectList m_dynObj; }; #endif diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 34e0d235640..b472f17257f 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -4223,7 +4223,7 @@ void Spell::EffectSummonRaidMarker(SpellEffIndex effIndex) return; } - group->AddMarkerToList(dynObj->GetGUID()); + group->AddMarkerToList(dynObj); group->AddGroupMarkerMask(slotMask); group->SendRaidMarkerUpdate();