diff options
author | Trisjdc <trisjdc@gmail.com> | 2014-05-25 11:34:26 +0100 |
---|---|---|
committer | Trisjdc <trisjdc@gmail.com> | 2014-05-25 11:34:26 +0100 |
commit | 45fcc2ff9d7df9b86b53fbfea106b827c4ac46de (patch) | |
tree | 4bc7f60e1131e6fa1321c27669a94cbf9cdc1c2d /src/server/collision/Models | |
parent | f091713086eab1ef928bc2f79eb0dc3b0bc4ce2f (diff) |
Core/Collision: Solve collision issues with non spawned GOs
Diffstat (limited to 'src/server/collision/Models')
-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: |