diff options
author | Subv <s.v.h21@hotmail.com> | 2012-02-14 18:19:40 -0500 |
---|---|---|
committer | Subv <s.v.h21@hotmail.com> | 2012-02-14 18:19:40 -0500 |
commit | c53d722aa29ff3a39d881de7d6ef86b79deffe48 (patch) | |
tree | 5e2fb4388553ad768b718542218df4ca8a8d44d5 /src/server/collision/Models | |
parent | 7d30b061f0bb4b7227b16c9fd97ddd5483d2357a (diff) |
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 <s.v.h21@hotmail.com>
Diffstat (limited to 'src/server/collision/Models')
-rw-r--r-- | src/server/collision/Models/WorldModel.cpp | 3 | ||||
-rwxr-xr-x | src/server/collision/Models/WorldModel.h | 1 |
2 files changed, 4 insertions, 0 deletions
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<GroupModel> groupModels; |