aboutsummaryrefslogtreecommitdiff
path: root/src/game/Map.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-04-20 20:28:19 -0500
committermegamage <none@none>2009-04-20 20:28:19 -0500
commitfc7e1db9fba443d523f0af7e0e32a37bad0163d3 (patch)
tree1ca0cb3689dc076782b8f84589dfd1fbe78fe9ac /src/game/Map.cpp
parentb4046ddf884871ec6d99df27c9f62370aa54036c (diff)
[7690] Move GetCreature/GetGameobject to class Map. Author: VladimirMangos
* This let get objects at map without reference to player or another object. * Simplify future implementation for per-map storage for like objects --HG-- branch : trunk
Diffstat (limited to 'src/game/Map.cpp')
-rw-r--r--src/game/Map.cpp55
1 files changed, 40 insertions, 15 deletions
diff --git a/src/game/Map.cpp b/src/game/Map.cpp
index e2d457d4dde..f0dce40e2fd 100644
--- a/src/game/Map.cpp
+++ b/src/game/Map.cpp
@@ -2402,20 +2402,6 @@ void InstanceMap::Remove(Player *player, bool remove)
SetResetSchedule(true);
}
-Creature * Map::GetCreatureInMap(uint64 guid)
-{
- Creature * obj = HashMapHolder<Creature>::Find(guid);
- if(obj && obj->GetInstanceId() != GetInstanceId()) obj = NULL;
- return obj;
-}
-
-GameObject * Map::GetGameObjectInMap(uint64 guid)
-{
- GameObject * obj = HashMapHolder<GameObject>::Find(guid);
- if(obj && obj->GetInstanceId() != GetInstanceId()) obj = NULL;
- return obj;
-}
-
void InstanceMap::CreateInstanceData(bool load)
{
if(i_data != NULL)
@@ -2642,5 +2628,44 @@ void BattleGroundMap::UnloadAll()
Map::UnloadAll();
}
-/*--------------------------TRINITY-------------------------*/
+Creature*
+Map::GetCreature(uint64 guid)
+{
+ Creature * ret = ObjectAccessor::GetObjectInWorld(guid, (Creature*)NULL);
+ if(!ret)
+ return NULL;
+
+ if(ret->GetMapId() != GetId())
+ return NULL;
+
+ if(ret->GetInstanceId() != GetInstanceId())
+ return NULL;
+
+ return ret;
+}
+
+GameObject*
+Map::GetGameObject(uint64 guid)
+{
+ GameObject * ret = ObjectAccessor::GetObjectInWorld(guid, (GameObject*)NULL);
+ if(!ret)
+ return NULL;
+ if(ret->GetMapId() != GetId())
+ return NULL;
+ if(ret->GetInstanceId() != GetInstanceId())
+ return NULL;
+ return ret;
+}
+DynamicObject*
+Map::GetDynamicObject(uint64 guid)
+{
+ DynamicObject * ret = ObjectAccessor::GetObjectInWorld(guid, (DynamicObject*)NULL);
+ if(!ret)
+ return NULL;
+ if(ret->GetMapId() != GetId())
+ return NULL;
+ if(ret->GetInstanceId() != GetInstanceId())
+ return NULL;
+ return ret;
+}