aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Globals/ObjectMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp37
1 files changed, 16 insertions, 21 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index be3331ead4c..df5136781de 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
+ * Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
*
* This program is free software; you can redistribute it and/or modify it
@@ -5597,12 +5597,11 @@ WorldSafeLocsEntry const* ObjectMgr::GetClosestGraveYard(float x, float y, float
// then check faction
// if mapId != graveyard.mapId (ghost in instance) and search any graveyard associated
// then check faction
- GraveYardContainer::const_iterator graveLow = GraveYardStore.lower_bound(zoneId);
- GraveYardContainer::const_iterator graveUp = GraveYardStore.upper_bound(zoneId);
+ GraveYardMapBounds range = GraveYardStore.equal_range(zoneId);
MapEntry const* map = sMapStore.LookupEntry(MapId);
- // not need to check validity of map object; MapId _MUST_ be valid here
- if (graveLow == graveUp && !map->IsBattleArena())
+ // not need to check validity of map object; MapId _MUST_ be valid here
+ if (range.first == range.second && !map->IsBattleArena())
{
sLog->outError(LOG_FILTER_SQL, "Table `game_graveyard_zone` incomplete: Zone %u Team %u does not have a linked graveyard.", zoneId, team);
return GetDefaultGraveYard(team);
@@ -5623,9 +5622,9 @@ WorldSafeLocsEntry const* ObjectMgr::GetClosestGraveYard(float x, float y, float
MapEntry const* mapEntry = sMapStore.LookupEntry(MapId);
- for (GraveYardContainer::const_iterator itr = graveLow; itr != graveUp; ++itr)
+ for (; range.first != range.second; ++range.first)
{
- GraveYardData const& data = itr->second;
+ GraveYardData const& data = range.first->second;
WorldSafeLocsEntry const* entry = sWorldSafeLocsStore.LookupEntry(data.safeLocId);
if (!entry)
@@ -5703,15 +5702,13 @@ WorldSafeLocsEntry const* ObjectMgr::GetClosestGraveYard(float x, float y, float
GraveYardData const* ObjectMgr::FindGraveYardData(uint32 id, uint32 zoneId)
{
- GraveYardContainer::const_iterator graveLow = GraveYardStore.lower_bound(zoneId);
- GraveYardContainer::const_iterator graveUp = GraveYardStore.upper_bound(zoneId);
-
- for (GraveYardContainer::const_iterator itr = graveLow; itr != graveUp; ++itr)
+ GraveYardMapBounds range = GraveYardStore.equal_range(zoneId);
+ for (; range.first != range.second; ++range.first)
{
- if (itr->second.safeLocId == id)
- return &itr->second;
+ GraveYardData const& data = range.first->second;
+ if (data.safeLocId == id)
+ return &data;
}
-
return NULL;
}
@@ -5744,9 +5741,8 @@ bool ObjectMgr::AddGraveYardLink(uint32 id, uint32 zoneId, uint32 team, bool per
void ObjectMgr::RemoveGraveYardLink(uint32 id, uint32 zoneId, uint32 team, bool persist /*= false*/)
{
- GraveYardContainer::iterator graveLow = GraveYardStore.lower_bound(zoneId);
- GraveYardContainer::iterator graveUp = GraveYardStore.upper_bound(zoneId);
- if (graveLow == graveUp)
+ GraveYardMapBoundsNonConst range = GraveYardStore.equal_range(zoneId);
+ if (range.first == range.second)
{
//sLog->outError(LOG_FILTER_SQL, "Table `game_graveyard_zone` incomplete: Zone %u Team %u does not have a linked graveyard.", zoneId, team);
return;
@@ -5754,11 +5750,10 @@ void ObjectMgr::RemoveGraveYardLink(uint32 id, uint32 zoneId, uint32 team, bool
bool found = false;
- GraveYardContainer::iterator itr;
- for (itr = graveLow; itr != graveUp; ++itr)
+ for (; range.first != range.second; ++range.first)
{
- GraveYardData & data = itr->second;
+ GraveYardData & data = range.first->second;
// skip not matching safezone id
if (data.safeLocId != id)
@@ -5778,7 +5773,7 @@ void ObjectMgr::RemoveGraveYardLink(uint32 id, uint32 zoneId, uint32 team, bool
return;
// remove from links
- GraveYardStore.erase(itr);
+ GraveYardStore.erase(range.first);
// remove link from DB
if (persist)