diff options
author | megamage <none@none> | 2009-04-20 20:28:19 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-04-20 20:28:19 -0500 |
commit | fc7e1db9fba443d523f0af7e0e32a37bad0163d3 (patch) | |
tree | 1ca0cb3689dc076782b8f84589dfd1fbe78fe9ac /src/game/Map.cpp | |
parent | b4046ddf884871ec6d99df27c9f62370aa54036c (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.cpp | 55 |
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; +} |