diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index 35cd4edf945..494d2853058 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -2658,8 +2658,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie, for (dof=3;dof<6;dof++) { - // flag only applies to angular limit x - if(dof != 3 || dat->flag & dofbit) + if(dat->flag & dofbit) { kxscene->GetPhysicsEnvironment()->setConstraintParam(constraintId,dof,dat->minLimit[dof],dat->maxLimit[dof]); } diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp index 937c70ede5e..7dfdb67d2c6 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp @@ -2001,7 +2001,10 @@ void CcdPhysicsEnvironment::setConstraintParam(int constraintId,int param,float { //param = 3,4,5 are constraint limits, high limit values btConeTwistConstraint* coneTwist = (btConeTwistConstraint*)typedConstraint; - coneTwist->setLimit(param,value1); + if(value1<0.0f) + coneTwist->setLimit(param,btScalar(BT_LARGE_FLOAT)); + else + coneTwist->setLimit(param,value1); break; } default: