diff --git a/src/common/Collision/Management/VMapFactory.cpp b/src/common/Collision/Management/VMapFactory.cpp index 7d951fba12..191f33a766 100644 --- a/src/common/Collision/Management/VMapFactory.cpp +++ b/src/common/Collision/Management/VMapFactory.cpp @@ -20,14 +20,14 @@ namespace VMAP { - IVMapManager* gVMapManager = nullptr; + VMapManager2* gVMapManager = nullptr; //=============================================== // just return the instance - IVMapManager* VMapFactory::createOrGetVMapManager() + VMapManager2* VMapFactory::createOrGetVMapManager() { if (gVMapManager == nullptr) - gVMapManager= new VMapManager2(); // should be taken from config ... Please change if you like :-) + gVMapManager= new VMapManager2(); return gVMapManager; } diff --git a/src/common/Collision/Management/VMapFactory.h b/src/common/Collision/Management/VMapFactory.h index ae07484561..ceb07fce97 100644 --- a/src/common/Collision/Management/VMapFactory.h +++ b/src/common/Collision/Management/VMapFactory.h @@ -26,12 +26,12 @@ This is the access point to the VMapManager. namespace VMAP { - //=========================================================== + class VMapManager2; class TC_COMMON_API VMapFactory { public: - static IVMapManager* createOrGetVMapManager(); + static VMapManager2* createOrGetVMapManager(); static void clear(); }; diff --git a/src/common/Collision/Models/GameObjectModel.cpp b/src/common/Collision/Models/GameObjectModel.cpp index 091a653e65..92f3730c91 100644 --- a/src/common/Collision/Models/GameObjectModel.cpp +++ b/src/common/Collision/Models/GameObjectModel.cpp @@ -99,7 +99,7 @@ void LoadGameObjectModelList(std::string const& dataPath) GameObjectModel::~GameObjectModel() { if (iModel) - ((VMAP::VMapManager2*)VMAP::VMapFactory::createOrGetVMapManager())->releaseModelInstance(name); + VMAP::VMapFactory::createOrGetVMapManager()->releaseModelInstance(name); } bool GameObjectModel::initialize(std::unique_ptr modelOwner, std::string const& dataPath) @@ -116,7 +116,7 @@ bool GameObjectModel::initialize(std::unique_ptr model return false; } - iModel = ((VMAP::VMapManager2*)VMAP::VMapFactory::createOrGetVMapManager())->acquireModelInstance(dataPath + "vmaps/", it->second.name); + iModel = VMAP::VMapFactory::createOrGetVMapManager()->acquireModelInstance(dataPath + "vmaps/", it->second.name); if (!iModel) return false; diff --git a/src/server/game/AI/CoreAI/UnitAI.cpp b/src/server/game/AI/CoreAI/UnitAI.cpp index 317734c64b..22024f612e 100644 --- a/src/server/game/AI/CoreAI/UnitAI.cpp +++ b/src/server/game/AI/CoreAI/UnitAI.cpp @@ -215,9 +215,7 @@ void UnitAI::FillAISpellInfo() if (AIInfo->cooldown < spellInfo->RecoveryTime) AIInfo->cooldown = spellInfo->RecoveryTime; - if (!spellInfo->GetMaxRange(false)) - UPDATE_TARGET(AITARGET_SELF) - else + if (spellInfo->GetMaxRange(false)) { for (uint32 j = 0; j < MAX_SPELL_EFFECTS; ++j) { diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 3d1cef0863..79bd4de15c 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -53,6 +53,7 @@ #include "Util.h" #include "Vehicle.h" #include "VMapFactory.h" +#include "VMapManager2.h" #include "WaypointMovementGenerator.h" #include "World.h" #include "WorldPacket.h" diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 3f0d0ea758..64c72dfc93 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -44,6 +44,7 @@ #include "Transport.h" #include "Vehicle.h" #include "VMapFactory.h" +#include "VMapManager2.h" #include "Weather.h" #include "WeatherMgr.h" #include "World.h" diff --git a/src/server/game/Maps/MapInstanced.cpp b/src/server/game/Maps/MapInstanced.cpp index 183cc818ab..4c6f14e25b 100644 --- a/src/server/game/Maps/MapInstanced.cpp +++ b/src/server/game/Maps/MapInstanced.cpp @@ -26,6 +26,7 @@ #include "ObjectMgr.h" #include "Player.h" #include "VMapFactory.h" +#include "VMapManager2.h" #include "World.h" MapInstanced::MapInstanced(uint32 id, time_t expiry) : Map(id, expiry, 0, DUNGEON_DIFFICULTY_NORMAL) diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 83f2fa28d0..8a03d6c214 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -57,6 +57,7 @@ #include "Util.h" #include "Vehicle.h" #include "VMapFactory.h" +#include "VMapManager2.h" #include "World.h" #include "WorldPacket.h" #include "WorldSession.h" diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 7ec0979df0..8fac7e56cf 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1619,11 +1619,9 @@ void World::SetInitialWorldSettings() dtAllocSetCustom(dtCustomAlloc, dtCustomFree); ///- Initialize VMapManager function pointers (to untangle game/collision circular deps) - if (VMAP::VMapManager2* vmmgr2 = dynamic_cast(VMAP::VMapFactory::createOrGetVMapManager())) - { - vmmgr2->GetLiquidFlagsPtr = &DBCManager::GetLiquidFlags; - vmmgr2->IsVMAPDisabledForPtr = &DisableMgr::IsVMAPDisabledFor; - } + VMAP::VMapManager2* vmmgr2 = VMAP::VMapFactory::createOrGetVMapManager(); + vmmgr2->GetLiquidFlagsPtr = &DBCManager::GetLiquidFlags; + vmmgr2->IsVMAPDisabledForPtr = &DisableMgr::IsVMAPDisabledFor; ///- Initialize config settings LoadConfigSettings(); @@ -1701,9 +1699,7 @@ void World::SetInitialWorldSettings() } sMapMgr->InitializeParentMapData(mapData); - - if (VMAP::VMapManager2* vmmgr2 = dynamic_cast(VMAP::VMapFactory::createOrGetVMapManager())) - vmmgr2->InitializeThreadUnsafe(mapData); + vmmgr2->InitializeThreadUnsafe(mapData); MMAP::MMapManager* mmmgr = MMAP::MMapFactory::createOrGetMMapManager(); mmmgr->InitializeThreadUnsafe(mapData); diff --git a/src/server/scripts/Commands/cs_server.cpp b/src/server/scripts/Commands/cs_server.cpp index 256f50c198..2016c64e94 100644 --- a/src/server/scripts/Commands/cs_server.cpp +++ b/src/server/scripts/Commands/cs_server.cpp @@ -39,6 +39,7 @@ EndScriptData */ #include "UpdateTime.h" #include "Util.h" #include "VMapFactory.h" +#include "VMapManager2.h" #include "World.h" #include "WorldSession.h"