aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorXTZGZoReX <none@none>2009-03-18 21:57:49 +0100
committerXTZGZoReX <none@none>2009-03-18 21:57:49 +0100
commit838ad6d847b5058a4eb9fd1be8496bf7ed4ca601 (patch)
treeb28e7bc92a736a424ab48ad214125219c93c88e3 /src
parent21374e2590aa7e97bdae280d7e0e418ff1e7d35f (diff)
parentd84cec89c040766c770576074e1b1f03154c5c37 (diff)
* Merge.
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/ObjectAccessor.h27
-rw-r--r--src/game/ObjectMgr.cpp5
-rw-r--r--src/shared/ByteBuffer.h6
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)));