|
|
@@ -44,7 +44,6 @@ PhysicsRigidBody::PhysicsRigidBody(Node* node, const PhysicsCollisionShape::Defi
|
|
|
// Set other initially defined properties.
|
|
|
setKinematic(parameters.kinematic);
|
|
|
setAnisotropicFriction(parameters.anisotropicFriction);
|
|
|
- setGravity(parameters.gravity);
|
|
|
|
|
|
// Add ourself to the physics world.
|
|
|
Game::getInstance()->getPhysicsController()->addCollisionObject(this);
|
|
|
@@ -185,6 +184,7 @@ PhysicsRigidBody* PhysicsRigidBody::create(Node* node, Properties* properties)
|
|
|
|
|
|
// Set the rigid body parameters to their defaults.
|
|
|
Parameters parameters;
|
|
|
+ Vector3* gravity = NULL;
|
|
|
|
|
|
// Load the defined rigid body parameters.
|
|
|
properties->rewind();
|
|
|
@@ -221,7 +221,8 @@ PhysicsRigidBody* PhysicsRigidBody::create(Node* node, Properties* properties)
|
|
|
}
|
|
|
else if (strcmp(name, "gravity") == 0)
|
|
|
{
|
|
|
- properties->getVector3(NULL, ¶meters.gravity);
|
|
|
+ gravity = new Vector3();
|
|
|
+ properties->getVector3(NULL, gravity);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
@@ -233,6 +234,12 @@ PhysicsRigidBody* PhysicsRigidBody::create(Node* node, Properties* properties)
|
|
|
PhysicsRigidBody* body = new PhysicsRigidBody(node, *shape, parameters);
|
|
|
SAFE_DELETE(shape);
|
|
|
|
|
|
+ if (gravity)
|
|
|
+ {
|
|
|
+ body->setGravity(*gravity);
|
|
|
+ SAFE_DELETE(gravity);
|
|
|
+ }
|
|
|
+
|
|
|
return body;
|
|
|
}
|
|
|
|