Make MouseJoint:getBodies() return only one body (fixes #1179)

Override Joint's Body getters in MouseJoint, to make the second (user-supplied) body the first body returned, and return nil for the second (internal) body
This commit is contained in:
Bart van Strien
2016-07-14 16:39:29 +02:00
parent 64ee986984
commit 65f53a491f
4 changed files with 16 additions and 2 deletions
+1
View File
@@ -21,6 +21,7 @@ Released: N/A
* Fixed the default shader improperly applying gamma correction to per-vertex colors when gamma correction is requested but not supported on OpenGL ES.
* Fixed text coloring breaking because of an empty string.
* Fixed large burst of particles when dramatically increasing the emission rate of a ParticleSystem.
* Fixed MouseJoint:getBodies unconditionally erroring.
* Improved performance of Channel methods by roughly 2x in many cases.
+2 -2
View File
@@ -84,8 +84,8 @@ public:
**/
Type getType() const;
Body *getBodyA() const;
Body *getBodyB() const;
virtual Body *getBodyA() const;
virtual Body *getBodyB() const;
/**
* Gets the anchor positions of the Joint in world
+10
View File
@@ -91,6 +91,16 @@ float MouseJoint::getDampingRatio() const
return joint->GetDampingRatio();
}
Body *MouseJoint::getBodyA() const
{
return Joint::getBodyB();
}
Body *MouseJoint::getBodyB() const
{
return nullptr;
}
} // box2d
} // physics
} // love
+3
View File
@@ -95,6 +95,9 @@ public:
**/
float getDampingRatio() const;
virtual Body *getBodyA() const;
virtual Body *getBodyB() const;
private:
// The Box2D MouseJoint object.
b2MouseJoint *joint;