From 14dfc377b48bc909894396e65d4e4ce89d9708b6 Mon Sep 17 00:00:00 2001 From: xinef1 Date: Sun, 5 Feb 2017 23:42:31 +0100 Subject: Core/Misc: Various crash fixes (#19059) * Replaced some FindPlayer calls with GetPlayer Fixed some more crashes * Correction --- src/server/game/Maps/Map.cpp | 5 +++++ src/server/game/Maps/Map.h | 5 +++-- src/server/game/Maps/MapScripts.cpp | 6 +++--- 3 files changed, 11 insertions(+), 5 deletions(-) (limited to 'src/server/game/Maps') diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 27d784a8110..d2bc9cdfb51 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -3512,6 +3512,11 @@ void BattlegroundMap::RemoveAllPlayers() player->TeleportTo(player->GetBattlegroundEntryPoint()); } +Player* Map::GetPlayer(ObjectGuid const& guid) +{ + return ObjectAccessor::GetPlayer(this, guid); +} + Corpse* Map::GetCorpse(ObjectGuid const& guid) { return _objectsStore.Find(guid); diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h index c87726bba57..600594d0861 100644 --- a/src/server/game/Maps/Map.h +++ b/src/server/game/Maps/Map.h @@ -451,8 +451,9 @@ class TC_GAME_API Map : public GridRefManager void UpdateIteratorBack(Player* player); - TempSummon* SummonCreature(uint32 entry, Position const& pos, SummonPropertiesEntry const* properties = NULL, uint32 duration = 0, Unit* summoner = NULL, uint32 spellId = 0, uint32 vehId = 0); - void SummonCreatureGroup(uint8 group, std::list* list = NULL); + TempSummon* SummonCreature(uint32 entry, Position const& pos, SummonPropertiesEntry const* properties = nullptr, uint32 duration = 0, Unit* summoner = nullptr, uint32 spellId = 0, uint32 vehId = 0); + void SummonCreatureGroup(uint8 group, std::list* list = nullptr); + Player* GetPlayer(ObjectGuid const& guid); Corpse* GetCorpse(ObjectGuid const& guid); Creature* GetCreature(ObjectGuid const& guid); GameObject* GetGameObject(ObjectGuid const& guid); diff --git a/src/server/game/Maps/MapScripts.cpp b/src/server/game/Maps/MapScripts.cpp index c3a933a753b..300c7fa38e5 100644 --- a/src/server/game/Maps/MapScripts.cpp +++ b/src/server/game/Maps/MapScripts.cpp @@ -295,7 +295,7 @@ void Map::ScriptsProcess() switch (step.sourceGUID.GetHigh()) { case HighGuid::Item: // as well as HighGuid::Container - if (Player* player = HashMapHolder::Find(step.ownerGUID)) + if (Player* player = GetPlayer(step.ownerGUID)) source = player->GetItemByGuid(step.sourceGUID); break; case HighGuid::Unit: @@ -306,7 +306,7 @@ void Map::ScriptsProcess() source = GetPet(step.sourceGUID); break; case HighGuid::Player: - source = HashMapHolder::Find(step.sourceGUID); + source = GetPlayer(step.sourceGUID); break; case HighGuid::Transport: case HighGuid::GameObject: @@ -338,7 +338,7 @@ void Map::ScriptsProcess() target = GetPet(step.targetGUID); break; case HighGuid::Player: // empty GUID case also - target = HashMapHolder::Find(step.targetGUID); + target = GetPlayer(step.targetGUID); break; case HighGuid::Transport: case HighGuid::GameObject: -- cgit v1.2.3