aboutsummaryrefslogtreecommitdiff
path: root/src/common/Collision/Management/VMapManager2.cpp
diff options
context:
space:
mode:
authorHelloKitty <andrew.blakely@ymail.com>2017-01-21 14:44:31 +0100
committerShauren <shauren.trinity@gmail.com>2018-12-09 14:18:42 +0100
commit46c69df3a7cd3f863a7a3cca59a136a0a5cdec9d (patch)
tree4c7c6df7b9ca316c3086478b5a69127d4a64a769 /src/common/Collision/Management/VMapManager2.cpp
parentda3783876b141f716d5daf09f9d69d8248a8382a (diff)
Core/Vmaps: Stop M2s from occluding for spellcast LoS
Closes #18528 (cherry-picked from 01d715eaef99e91f0959dc85fb7f69eb26d01a22)
Diffstat (limited to 'src/common/Collision/Management/VMapManager2.cpp')
-rw-r--r--src/common/Collision/Management/VMapManager2.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/common/Collision/Management/VMapManager2.cpp b/src/common/Collision/Management/VMapManager2.cpp
index 163769f33a9..1f3e001b054 100644
--- a/src/common/Collision/Management/VMapManager2.cpp
+++ b/src/common/Collision/Management/VMapManager2.cpp
@@ -191,7 +191,7 @@ namespace VMAP
}
}
- bool VMapManager2::isInLineOfSight(unsigned int mapId, float x1, float y1, float z1, float x2, float y2, float z2)
+ bool VMapManager2::isInLineOfSight(unsigned int mapId, float x1, float y1, float z1, float x2, float y2, float z2, ModelIgnoreFlags ignoreFlags)
{
if (!isLineOfSightCalcEnabled() || IsVMAPDisabledForPtr(mapId, VMAP_DISABLE_LOS))
return true;
@@ -202,7 +202,7 @@ namespace VMAP
Vector3 pos1 = convertPositionToInternalRep(x1, y1, z1);
Vector3 pos2 = convertPositionToInternalRep(x2, y2, z2);
if (pos1 != pos2)
- return instanceTree->second->isInLineOfSight(pos1, pos2);
+ return instanceTree->second->isInLineOfSight(pos1, pos2, ignoreFlags);
}
return true;
@@ -306,7 +306,7 @@ namespace VMAP
return false;
}
- WorldModel* VMapManager2::acquireModelInstance(const std::string& basepath, const std::string& filename)
+ WorldModel* VMapManager2::acquireModelInstance(const std::string& basepath, const std::string& filename, uint32 flags/* Only used when creating the model */)
{
//! Critical section, thread safe access to iLoadedModelFiles
std::lock_guard<std::mutex> lock(LoadedModelFilesLock);
@@ -322,6 +322,9 @@ namespace VMAP
return NULL;
}
TC_LOG_DEBUG("maps", "VMapManager2: loading file '%s%s'", basepath.c_str(), filename.c_str());
+
+ worldmodel->Flags = flags;
+
model = iLoadedModelFiles.insert(std::pair<std::string, ManagedModel>(filename, ManagedModel())).first;
model->second.setModel(worldmodel);
}