diff options
author | Kinzcool <kinzzcool@hotmail.com> | 2014-11-02 11:53:45 -0500 |
---|---|---|
committer | Kinzcool <kinzzcool@hotmail.com> | 2014-11-02 11:53:45 -0500 |
commit | b377527264077aa329400e7c3c8200c90d5606d6 (patch) | |
tree | 9ca61ada06020910adb3d8e631ed06e614140f16 /src | |
parent | 6647987651105bdef6d59d31568a2d80e1886198 (diff) |
Core/Graveyards: Made the graveyard orientations loading from WorldSafeLocs.dbc
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 45 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.h | 13 | ||||
-rw-r--r-- | src/server/game/Handlers/NPCHandler.cpp | 2 | ||||
-rw-r--r-- | src/server/game/World/World.cpp | 3 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_go.cpp | 2 |
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; } |