From c53d722aa29ff3a39d881de7d6ef86b79deffe48 Mon Sep 17 00:00:00 2001 From: Subv Date: Tue, 14 Feb 2012 18:19:40 -0500 Subject: Core/Collision: Models with flag MOD_M2 (mostly trees, among some other objects) should not be taken into account for LoS checks, this check does not apply to gameobjects (yet) closes #3495 Signed-off-by: Subv --- src/server/collision/Models/WorldModel.cpp | 3 +++ src/server/collision/Models/WorldModel.h | 1 + 2 files changed, 4 insertions(+) (limited to 'src/server/collision/Models') diff --git a/src/server/collision/Models/WorldModel.cpp b/src/server/collision/Models/WorldModel.cpp index a7de37d41e6..b49538a485d 100644 --- a/src/server/collision/Models/WorldModel.cpp +++ b/src/server/collision/Models/WorldModel.cpp @@ -420,6 +420,9 @@ namespace VMAP bool WorldModel::IntersectRay(const G3D::Ray &ray, float &distance, bool stopAtFirstHit) const { + // M2 models are not taken into account for LoS calculation + if (Flags & MOD_M2) + return false; // small M2 workaround, maybe better make separate class with virtual intersection funcs // in any case, there's no need to use a bound tree if we only have one submodel if (groupModels.size() == 1) diff --git a/src/server/collision/Models/WorldModel.h b/src/server/collision/Models/WorldModel.h index ebf828e4935..dbaccb58573 100755 --- a/src/server/collision/Models/WorldModel.h +++ b/src/server/collision/Models/WorldModel.h @@ -113,6 +113,7 @@ namespace VMAP bool GetLocationInfo(const G3D::Vector3 &p, const G3D::Vector3 &down, float &dist, LocationInfo &info) const; bool writeFile(const std::string &filename); bool readFile(const std::string &filename); + uint32 Flags; protected: uint32 RootWMOID; std::vector groupModels; -- cgit v1.2.3