diff options
author | XTZGZoReX <none@none> | 2009-03-18 21:57:49 +0100 |
---|---|---|
committer | XTZGZoReX <none@none> | 2009-03-18 21:57:49 +0100 |
commit | 838ad6d847b5058a4eb9fd1be8496bf7ed4ca601 (patch) | |
tree | b28e7bc92a736a424ab48ad214125219c93c88e3 /src | |
parent | 21374e2590aa7e97bdae280d7e0e418ff1e7d35f (diff) | |
parent | d84cec89c040766c770576074e1b1f03154c5c37 (diff) |
* Merge.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/ObjectAccessor.h | 27 | ||||
-rw-r--r-- | src/game/ObjectMgr.cpp | 5 | ||||
-rw-r--r-- | src/shared/ByteBuffer.h | 6 |
3 files changed, 34 insertions, 4 deletions
diff --git a/src/game/ObjectAccessor.h b/src/game/ObjectAccessor.h index fea2331695c..218d1d91995 100644 --- a/src/game/ObjectAccessor.h +++ b/src/game/ObjectAccessor.h @@ -154,9 +154,30 @@ class TRINITY_DLL_DECL ObjectAccessor : public Trinity::Singleton<ObjectAccessor Player* FindPlayerByName(const char *name) ; - HashMapHolder<Player>::MapType& GetPlayers() - { - return HashMapHolder<Player>::GetContainer(); + HashMapHolder<Player>::MapType& GetPlayers()
+ {
+ return HashMapHolder<Player>::GetContainer();
+ }
+
+ HashMapHolder<Creature>::MapType& GetCreatures()
+ {
+ return HashMapHolder<Creature>::GetContainer();
+ }
+
+ HashMapHolder<Unit>::MapType& GetUnits()
+ {
+ return HashMapHolder<Unit>::GetContainer();
+ }
+
+ HashMapHolder<GameObject>::MapType& GetGameObjects()
+ {
+ return HashMapHolder<GameObject>::GetContainer();
+ }
+
+ // note: possibly very heavy
+ HashMapHolder<WorldObject>::MapType& GetWorldObjects()
+ {
+ return HashMapHolder<WorldObject>::GetContainer();
} template<class T> void AddObject(T *object) diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index ba6d78f637e..3abd08c07dc 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -4834,7 +4834,10 @@ WorldSafeLocsEntry const *ObjectMgr::GetClosestGraveYard(float x, float y, float // then check faction GraveYardMap::const_iterator graveLow = mGraveYardMap.lower_bound(zoneId); GraveYardMap::const_iterator graveUp = mGraveYardMap.upper_bound(zoneId); - if(graveLow==graveUp) + MapEntry const* map = sMapStore.LookupEntry(MapId); + // not need to check validity of map object; MapId _MUST_ be valid here + + if(graveLow==graveUp && !map->IsBattleArena()) { sLog.outErrorDb("Table `game_graveyard_zone` incomplete: Zone %u Team %u does not have a linked graveyard.",zoneId,team); return NULL; diff --git a/src/shared/ByteBuffer.h b/src/shared/ByteBuffer.h index 97b6c1cbd17..801270fa711 100644 --- a/src/shared/ByteBuffer.h +++ b/src/shared/ByteBuffer.h @@ -228,6 +228,12 @@ class ByteBuffer _rpos += sizeof(T); return r; }; + template<> std::string read<std::string>() + { + std::string tmp; + *this >> tmp; + return tmp; + } template <typename T> T read(size_t pos) const { ASSERT(pos + sizeof(T) <= size() || PrintPosError(false,pos,sizeof(T))); |