aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Globals/ObjectMgr.cpp
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2013-01-02 13:30:51 +0100
committerSpp <spp@jorge.gr>2013-01-02 13:30:51 +0100
commitaed36a8375538dfb7ebe6da4c32c012a95dc14c6 (patch)
treeeca30ab36e47bcedc1f0380f0f8a600326cac41f /src/server/game/Globals/ObjectMgr.cpp
parent91f8ca32445f839e36ec699627a12781907950c9 (diff)
parentebd14b4f01cc64a2a488bdbb1046897cc4da8e9a (diff)
Merge branch 'master' into 4.3.4
Conflicts: dep/libmpq/CMakeLists.txt src/server/game/AI/EventAI/CreatureEventAI.cpp src/server/game/AI/EventAI/CreatureEventAI.h src/server/game/AI/EventAI/CreatureEventAIMgr.cpp src/server/game/AI/EventAI/CreatureEventAIMgr.h src/server/game/Entities/Creature/Creature.h src/server/game/Entities/Item/ItemPrototype.h src/server/game/Entities/Object/ObjectDefines.h src/server/game/Entities/Player/Player.cpp src/server/game/Handlers/ReferAFriendHandler.cpp src/server/game/Movement/Spline/MoveSplineInit.h src/server/game/World/World.h src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h src/server/scripts/EasternKingdoms/boss_kruul.cpp src/server/scripts/OutdoorPvP/OutdoorPvPEP.cpp src/server/scripts/OutdoorPvP/OutdoorPvPEP.h src/server/shared/Database/Implementation/CharacterDatabase.cpp src/server/shared/Database/Implementation/CharacterDatabase.h src/server/shared/Database/Implementation/WorldDatabase.cpp
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)