aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKinzcool <kinzzcool@hotmail.com>2014-11-02 11:53:45 -0500
committerKinzcool <kinzzcool@hotmail.com>2014-11-02 11:53:45 -0500
commitb377527264077aa329400e7c3c8200c90d5606d6 (patch)
tree9ca61ada06020910adb3d8e631ed06e614140f16 /src
parent6647987651105bdef6d59d31568a2d80e1886198 (diff)
Core/Graveyards: Made the graveyard orientations loading from WorldSafeLocs.dbc
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp3
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp45
-rw-r--r--src/server/game/Globals/ObjectMgr.h13
-rw-r--r--src/server/game/Handlers/NPCHandler.cpp2
-rw-r--r--src/server/game/World/World.cpp3
-rw-r--r--src/server/scripts/Commands/cs_go.cpp2
6 files changed, 8 insertions, 60 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index c38d0103c93..e45f7c896b9 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -5311,8 +5311,7 @@ void Player::RepopAtGraveyard()
// and don't show spirit healer location
if (ClosestGrave)
{
- float const* orientation = sObjectMgr->GetGraveyardOrientation(ClosestGrave->ID);
- TeleportTo(ClosestGrave->map_id, ClosestGrave->x, ClosestGrave->y, ClosestGrave->z, orientation ? *orientation : GetOrientation());
+ TeleportTo(ClosestGrave->map_id, ClosestGrave->x, ClosestGrave->y, ClosestGrave->z, (ClosestGrave->Facing * M_PI) / 180); // Orientation is initially in degrees
if (isDead()) // not send if alive, because it used in TeleportTo()
{
WorldPacket data(SMSG_DEATH_RELEASE_LOC, 4*4); // show spirit healer position on minimap
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index f5e93ede9af..13e390bc362 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -279,7 +279,6 @@ ObjectMgr::~ObjectMgr()
itr->second.Clear();
_cacheTrainerSpellStore.clear();
- _graveyardOrientations.clear();
for (DungeonEncounterContainer::iterator itr =_dungeonEncounterStore.begin(); itr != _dungeonEncounterStore.end(); ++itr)
for (DungeonEncounterList::iterator encounterItr = itr->second.begin(); encounterItr != itr->second.end(); ++encounterItr)
@@ -300,34 +299,6 @@ void ObjectMgr::AddLocaleString(std::string const& s, LocaleConstant locale, Str
}
}
-void ObjectMgr::LoadGraveyardOrientations()
-{
- uint32 oldMSTime = getMSTime();
-
- _graveyardOrientations.clear();
-
- QueryResult result = WorldDatabase.Query("SELECT id, orientation FROM graveyard_orientation");
-
- if (!result)
- return;
-
- do
- {
- Field* fields = result->Fetch();
-
- uint32 id = fields[0].GetUInt32();
- if (!sWorldSafeLocsStore.LookupEntry(id))
- {
- TC_LOG_ERROR("server.loading", "Graveyard %u referenced in graveyard_orientation doesn't exist.", id);
- continue;
- }
- _graveyardOrientations[id] = fields[1].GetFloat();
-
- } while (result->NextRow());
-
- TC_LOG_INFO("server.loading", ">> Loaded %lu graveyard orientations in %u ms", (unsigned long)_graveyardOrientations.size(), GetMSTimeDiffToNow(oldMSTime));
-}
-
void ObjectMgr::LoadCreatureLocales()
{
uint32 oldMSTime = getMSTime();
@@ -6204,19 +6175,13 @@ void ObjectMgr::LoadAreaTriggerTeleports()
continue;
}
- WorldSafeLocsEntry const* MapID = sWorldSafeLocsStore.LookupEntry(PortLocID);
- WorldSafeLocsEntry const* PositionX = sWorldSafeLocsStore.LookupEntry(PortLocID);
- WorldSafeLocsEntry const* PositionY = sWorldSafeLocsStore.LookupEntry(PortLocID);
- WorldSafeLocsEntry const* PositionZ = sWorldSafeLocsStore.LookupEntry(PortLocID);
- WorldSafeLocsEntry const* Orientation = sWorldSafeLocsStore.LookupEntry(PortLocID);
-
AreaTriggerStruct at;
- at.target_mapId = MapID->map_id;
- at.target_X = PositionX->x;
- at.target_Y = PositionY->y;
- at.target_Z = PositionZ->z;
- at.target_Orientation = ((Orientation->Facing) * M_PI) / 180; // Orientation is initially in degrees
+ at.target_mapId = portLoc->map_id;
+ at.target_X = portLoc->x;
+ at.target_Y = portLoc->y;
+ at.target_Z = portLoc->z;
+ at.target_Orientation = (portLoc->Facing * M_PI) / 180; // Orientation is initially in degrees
AreaTriggerEntry const* atEntry = sAreaTriggerStore.LookupEntry(Trigger_ID);
if (!atEntry)
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index c1d96b4ae05..045e8705f19 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -650,7 +650,6 @@ struct GraveYardData
};
typedef std::multimap<uint32, GraveYardData> GraveYardContainer;
-typedef std::unordered_map<uint32 /* graveyard Id */, float /* orientation */> GraveyardOrientationContainer;
typedef std::pair<GraveYardContainer::const_iterator, GraveYardContainer::const_iterator> GraveYardMapBounds;
typedef std::pair<GraveYardContainer::iterator, GraveYardContainer::iterator> GraveYardMapBoundsNonConst;
@@ -990,7 +989,6 @@ class ObjectMgr
void LoadBroadcastTextLocales();
void LoadCreatureClassLevelStats();
void LoadCreatureLocales();
- void LoadGraveyardOrientations();
void LoadCreatureTemplates();
void LoadCreatureTemplateAddons();
void LoadCreatureTemplate(Field* fields);
@@ -1274,15 +1272,6 @@ class ObjectMgr
return &iter->second;
}
- float const* GetGraveyardOrientation(uint32 id) const
- {
- GraveyardOrientationContainer::const_iterator iter = _graveyardOrientations.find(id);
- if (iter != _graveyardOrientations.end())
- return &iter->second;
-
- return NULL;
- }
-
void AddVendorItem(uint32 entry, uint32 item, int32 maxcount, uint32 incrtime, uint32 extendedCost, uint8 type, bool persist = true); // for event
bool RemoveVendorItem(uint32 entry, uint32 item, uint8 type, bool persist = true); // for event
bool IsVendorItemValid(uint32 vendor_entry, uint32 id, int32 maxcount, uint32 ptime, uint32 ExtendedCost, uint8 type, Player* player = NULL, std::set<uint32>* skip_vendors = NULL, uint32 ORnpcflag = 0) const;
@@ -1503,8 +1492,6 @@ class ObjectMgr
CacheVendorItemContainer _cacheVendorItemStore;
CacheTrainerSpellContainer _cacheTrainerSpellStore;
- GraveyardOrientationContainer _graveyardOrientations;
-
std::set<uint32> _difficultyEntries[MAX_DIFFICULTY - 1]; // already loaded difficulty 1 value in creatures, used in CheckCreatureTemplate
std::set<uint32> _hasDifficultyEntries[MAX_DIFFICULTY - 1]; // already loaded creatures with difficulty 1 values, used in CheckCreatureTemplate
diff --git a/src/server/game/Handlers/NPCHandler.cpp b/src/server/game/Handlers/NPCHandler.cpp
index 29ce69976d2..d607533a9a7 100644
--- a/src/server/game/Handlers/NPCHandler.cpp
+++ b/src/server/game/Handlers/NPCHandler.cpp
@@ -443,7 +443,7 @@ void WorldSession::SendSpiritResurrect()
_player->GetPositionX(), _player->GetPositionY(), _player->GetPositionZ(), _player->GetMapId(), _player->GetTeam());
if (corpseGrave != ghostGrave)
- _player->TeleportTo(corpseGrave->map_id, corpseGrave->x, corpseGrave->y, corpseGrave->z, _player->GetOrientation());
+ _player->TeleportTo(corpseGrave->map_id, corpseGrave->x, corpseGrave->y, corpseGrave->z, (corpseGrave->Facing * M_PI) / 180); // Orientation is initially in degrees
// or update at original position
else
_player->UpdateObjectVisibility();
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index 0ecb781d378..7e3f8351dbc 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -1606,9 +1606,6 @@ void World::SetInitialWorldSettings()
TC_LOG_INFO("server.loading", "Loading Graveyard-zone links...");
sObjectMgr->LoadGraveyardZones();
- TC_LOG_INFO("server.loading", "Loading Graveyard Orientations...");
- sObjectMgr->LoadGraveyardOrientations();
-
TC_LOG_INFO("server.loading", "Loading spell pet auras...");
sSpellMgr->LoadSpellPetAuras();
diff --git a/src/server/scripts/Commands/cs_go.cpp b/src/server/scripts/Commands/cs_go.cpp
index 2ae2f2c3fd8..162e1665177 100644
--- a/src/server/scripts/Commands/cs_go.cpp
+++ b/src/server/scripts/Commands/cs_go.cpp
@@ -216,7 +216,7 @@ public:
else
player->SaveRecallPosition();
- player->TeleportTo(gy->map_id, gy->x, gy->y, gy->z, player->GetOrientation());
+ player->TeleportTo(gy->map_id, gy->x, gy->y, gy->z, (gy->Facing * M_PI) / 180); // Orientation is initially in degrees
return true;
}