diff options
Diffstat (limited to 'src/core/entity.cc')
-rw-r--r-- | src/core/entity.cc | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/core/entity.cc b/src/core/entity.cc index 84f4de0..da94896 100644 --- a/src/core/entity.cc +++ b/src/core/entity.cc @@ -550,7 +550,7 @@ void Entity::reset() if (model() && model()->radius()) { const float modelscale = radius() / model()->radius(); - if (flag_is_set(Complex) && model()->collisionmodel() && model()->collisionmodel()->size()) { + if (model()->collisionmodel() && model()->collisionmodel()->size()) { // complex collision is enabled and a valid collision model has been found btCompoundShape *compoundshape = new btCompoundShape(); @@ -571,7 +571,8 @@ void Entity::reset() meshshape->buildOptimizedBvh(); meshshape->recalcLocalAabb(); - // apply collision mesh properties to the btCollisionShape + // apply collision mesh properties to the btCollisionShape + // FIXME this goes wrong with rotated entities (see alexandria) btTransform child_transform; child_transform.setIdentity(); child_transform.setOrigin(to_btVector3(mesh->location() * modelscale)); @@ -681,7 +682,7 @@ void EntityDynamic::reset() if (model() && model()->radius()) { const float modelscale = radius() / model()->radius(); - if (flag_is_set(Complex) && model()->collisionmodel() && model()->collisionmodel()->size()) { + if (model()->collisionmodel() && model()->collisionmodel()->size()) { // complex collision is enabled and a valid collision model has been found btCompoundShape *compoundshape = new btCompoundShape(); for (model::CollisionModel::CollisionMeshes::iterator it = model()->collisionmodel()->meshes().begin(); @@ -1143,8 +1144,8 @@ void EntityControlable::reset() if (model() && model()->radius()) { const float modelscale = radius() / model()->radius(); - if (flag_is_set(Complex) && model()->collisionmodel() && model()->collisionmodel()->size()) { - // complex collision is enabled and a valid collision model has been found + if (model()->collisionmodel() && model()->collisionmodel()->size()) { + // a valid collision model has been found btCompoundShape *compoundshape = new btCompoundShape(); for (model::CollisionModel::CollisionMeshes::iterator it = model()->collisionmodel()->meshes().begin(); it != model()->collisionmodel()->meshes().end(); it++) { |