aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Object
diff options
context:
space:
mode:
authorariel- <ariel.silva305@gmail.com>2016-03-02 22:02:45 -0300
committerariel- <ariel.silva305@gmail.com>2016-03-02 23:31:22 -0300
commit3a7f311547bd4301abd102eb785c050d5436dce9 (patch)
tree54e11b1a6f850a7b0b0e94ed08b3e7aff29f7ece /src/server/game/Entities/Object
parentd0263c03fd7cc7291b2eed2a3ca027cf1a8926e2 (diff)
Core/Conditions: fix a memory leak for CONDITION_SOURCE_TYPE_TERRAIN_SWAP
Reported by Aokromes.
Diffstat (limited to 'src/server/game/Entities/Object')
-rw-r--r--src/server/game/Entities/Object/Object.cpp32
1 files changed, 16 insertions, 16 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 662d3888159..064aafb5cf7 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -3112,26 +3112,26 @@ void WorldObject::RebuildTerrainSwaps()
// Check all applied phases for terrain swap and add it only once
for (uint32 phaseId : _phases)
{
- if (std::vector<PhaseInfoStruct> const* swaps = sObjectMgr->GetPhaseTerrainSwaps(phaseId))
+ if (std::vector<uint32> const* swaps = sObjectMgr->GetPhaseTerrainSwaps(phaseId))
{
- for (PhaseInfoStruct const& swap : *swaps)
+ for (uint32 const& swap : *swaps)
{
// only add terrain swaps for current map
- MapEntry const* mapEntry = sMapStore.LookupEntry(swap.Id);
+ MapEntry const* mapEntry = sMapStore.LookupEntry(swap);
if (!mapEntry || mapEntry->ParentMapID != int32(GetMapId()))
continue;
- if (sConditionMgr->IsObjectMeetToConditions(this, swap.Conditions))
- _terrainSwaps.insert(swap.Id);
+ if (sConditionMgr->IsObjectMeetingNotGroupedConditions(CONDITION_SOURCE_TYPE_TERRAIN_SWAP, swap, this))
+ _terrainSwaps.insert(swap);
}
}
}
// get default terrain swaps, only for current map always
- if (std::vector<PhaseInfoStruct> const* mapSwaps = sObjectMgr->GetDefaultTerrainSwaps(GetMapId()))
- for (PhaseInfoStruct const& swap : *mapSwaps)
- if (sConditionMgr->IsObjectMeetToConditions(this, swap.Conditions))
- _terrainSwaps.insert(swap.Id);
+ if (std::vector<uint32> const* mapSwaps = sObjectMgr->GetDefaultTerrainSwaps(GetMapId()))
+ for (uint32 const& swap : *mapSwaps)
+ if (sConditionMgr->IsObjectMeetingNotGroupedConditions(CONDITION_SOURCE_TYPE_TERRAIN_SWAP, swap, this))
+ _terrainSwaps.insert(swap);
// online players have a game client with world map display
if (GetTypeId() == TYPEID_PLAYER)
@@ -3147,18 +3147,18 @@ void WorldObject::RebuildWorldMapAreaSwaps()
// send the worldmaparea for it, to see swapped worldmaparea in client from other maps too, not just from our current
TerrainPhaseInfo const& defaults = sObjectMgr->GetDefaultTerrainSwapStore();
for (TerrainPhaseInfo::const_iterator itr = defaults.begin(); itr != defaults.end(); ++itr)
- for (PhaseInfoStruct const& swap : itr->second)
- if (std::vector<uint32> const* uiMapSwaps = sObjectMgr->GetTerrainWorldMaps(swap.Id))
- if (sConditionMgr->IsObjectMeetToConditions(this, swap.Conditions))
+ for (uint32 const& swap : itr->second)
+ if (std::vector<uint32> const* uiMapSwaps = sObjectMgr->GetTerrainWorldMaps(swap))
+ if (sConditionMgr->IsObjectMeetingNotGroupedConditions(CONDITION_SOURCE_TYPE_TERRAIN_SWAP, swap, this))
for (uint32 worldMapAreaId : *uiMapSwaps)
_worldMapAreaSwaps.insert(worldMapAreaId);
// Check all applied phases for world map area swaps
for (uint32 phaseId : _phases)
- if (std::vector<PhaseInfoStruct> const* swaps = sObjectMgr->GetPhaseTerrainSwaps(phaseId))
- for (PhaseInfoStruct const& swap : *swaps)
- if (std::vector<uint32> const* uiMapSwaps = sObjectMgr->GetTerrainWorldMaps(swap.Id))
- if (sConditionMgr->IsObjectMeetToConditions(this, swap.Conditions))
+ if (std::vector<uint32> const* swaps = sObjectMgr->GetPhaseTerrainSwaps(phaseId))
+ for (uint32 const& swap : *swaps)
+ if (std::vector<uint32> const* uiMapSwaps = sObjectMgr->GetTerrainWorldMaps(swap))
+ if (sConditionMgr->IsObjectMeetingNotGroupedConditions(CONDITION_SOURCE_TYPE_TERRAIN_SWAP, swap, this))
for (uint32 worldMapAreaId : *uiMapSwaps)
_worldMapAreaSwaps.insert(worldMapAreaId);
}