diff options
author | Sebastian Valle Herrera <subv2112@gmail.com> | 2014-05-25 11:15:17 -0500 |
---|---|---|
committer | Sebastian Valle Herrera <subv2112@gmail.com> | 2014-05-25 11:15:17 -0500 |
commit | c06a263f96c7db0464595532d74fab66a0bfd760 (patch) | |
tree | 3a48c4e0c8820ca2e7bdd684c07d7daa2202933a | |
parent | 1a48967cdf4156bd90b7a88f202d55786faae8f1 (diff) | |
parent | 45fcc2ff9d7df9b86b53fbfea106b827c4ac46de (diff) |
Merge pull request #12129 from Trisjdc/go_collision
Core/Collision: Solve collision issues with non spawned GOs
-rw-r--r-- | src/server/collision/Models/GameObjectModel.cpp | 3 | ||||
-rw-r--r-- | src/server/collision/Models/GameObjectModel.h | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/server/collision/Models/GameObjectModel.cpp b/src/server/collision/Models/GameObjectModel.cpp index 1b99e282132..de97943bb37 100644 --- a/src/server/collision/Models/GameObjectModel.cpp +++ b/src/server/collision/Models/GameObjectModel.cpp @@ -140,6 +140,7 @@ bool GameObjectModel::initialize(const GameObject& go, const GameObjectDisplayIn } #endif + owner = &go; return true; } @@ -161,7 +162,7 @@ GameObjectModel* GameObjectModel::Create(const GameObject& go) bool GameObjectModel::intersectRay(const G3D::Ray& ray, float& MaxDist, bool StopAtFirstHit, uint32 ph_mask) const { - if (!(phasemask & ph_mask)) + if (!(phasemask & ph_mask) || !owner->isSpawned()) return false; float time = ray.intersectionTime(iBound); diff --git a/src/server/collision/Models/GameObjectModel.h b/src/server/collision/Models/GameObjectModel.h index 6088b924343..99c9b1337b3 100644 --- a/src/server/collision/Models/GameObjectModel.h +++ b/src/server/collision/Models/GameObjectModel.h @@ -44,8 +44,9 @@ class GameObjectModel /*, public Intersectable*/ float iInvScale; float iScale; VMAP::WorldModel* iModel; + GameObject const* owner; - GameObjectModel() : phasemask(0), iInvScale(0), iScale(0), iModel(NULL) { } + GameObjectModel() : phasemask(0), iInvScale(0), iScale(0), iModel(NULL), owner(NULL) { } bool initialize(const GameObject& go, const GameObjectDisplayInfoEntry& info); public: |