Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Szepe <HG1_public@gmx.net>2015-10-11 16:41:40 +0300
committerThomas Szepe <HG1_public@gmx.net>2015-10-11 16:41:40 +0300
commit83721682bb12a5b3c277e832241e0752fdb2df2e (patch)
treed3c4b1d6dc4e9a22e98a68dfd2427acc6da41156 /source/gameengine/Physics
parent5295202c2ca3ae6a57a0af0ddbd637c220760826 (diff)
BGE: Change character jumping to char
* Change the character jumping variables and methods from int to char. * Limit the maxJumps integer value from 0 to 255. * Allow to set the minimum jump amount to 0. Reviewers: panzergame, lordloki, moguri Reviewed By: lordloki, moguri Subscribers: agoose77 Projects: #game_engine Differential Revision: https://developer.blender.org/D1305
Diffstat (limited to 'source/gameengine/Physics')
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsController.cpp8
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsController.h16
-rw-r--r--source/gameengine/Physics/common/PHY_ICharacter.h6
3 files changed, 15 insertions, 15 deletions
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
index ab7097b19ca..6a1e52c9263 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
@@ -81,24 +81,24 @@ void BlenderBulletCharacterController::updateAction(btCollisionWorld *collisionW
m_motionState->setWorldTransform(getGhostObject()->getWorldTransform());
}
-int BlenderBulletCharacterController::getMaxJumps() const
+unsigned char BlenderBulletCharacterController::getMaxJumps() const
{
return m_maxJumps;
}
-void BlenderBulletCharacterController::setMaxJumps(int maxJumps)
+void BlenderBulletCharacterController::setMaxJumps(unsigned char maxJumps)
{
m_maxJumps = maxJumps;
}
-int BlenderBulletCharacterController::getJumpCount() const
+unsigned char BlenderBulletCharacterController::getJumpCount() const
{
return m_jumps;
}
bool BlenderBulletCharacterController::canJump() const
{
- return onGround() || m_jumps < m_maxJumps;
+ return (onGround() && m_maxJumps > 0) || m_jumps < m_maxJumps;
}
void BlenderBulletCharacterController::jump()
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.h b/source/gameengine/Physics/Bullet/CcdPhysicsController.h
index c49ae8d20e1..2ae1ff8f25a 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsController.h
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.h
@@ -407,19 +407,19 @@ class BlenderBulletCharacterController : public btKinematicCharacterController,
{
private:
btMotionState* m_motionState;
- int m_jumps;
- int m_maxJumps;
+ unsigned char m_jumps;
+ unsigned char m_maxJumps;
public:
BlenderBulletCharacterController(btMotionState *motionState, btPairCachingGhostObject *ghost, btConvexShape* shape, float stepHeight);
virtual void updateAction(btCollisionWorld *collisionWorld, btScalar dt);
- int getMaxJumps() const;
+ unsigned char getMaxJumps() const;
- void setMaxJumps(int maxJumps);
+ void setMaxJumps(unsigned char maxJumps);
- int getJumpCount() const;
+ unsigned char getJumpCount() const;
virtual bool canJump() const;
@@ -432,9 +432,9 @@ public:
virtual bool OnGround(){ return onGround(); }
virtual float GetGravity() { return getGravity(); }
virtual void SetGravity(float gravity) { setGravity(gravity); }
- virtual int GetMaxJumps() { return getMaxJumps(); }
- virtual void SetMaxJumps(int maxJumps) { setMaxJumps(maxJumps); }
- virtual int GetJumpCount() { return getJumpCount(); }
+ virtual unsigned char GetMaxJumps() { return getMaxJumps(); }
+ virtual void SetMaxJumps(unsigned char maxJumps) { setMaxJumps(maxJumps); }
+ virtual unsigned char GetJumpCount() { return getJumpCount(); }
virtual void SetWalkDirection(const MT_Vector3& dir)
{
btVector3 vec = btVector3(dir[0], dir[1], dir[2]);
diff --git a/source/gameengine/Physics/common/PHY_ICharacter.h b/source/gameengine/Physics/common/PHY_ICharacter.h
index a3d3000a143..81c567ef08a 100644
--- a/source/gameengine/Physics/common/PHY_ICharacter.h
+++ b/source/gameengine/Physics/common/PHY_ICharacter.h
@@ -23,10 +23,10 @@ public:
virtual float GetGravity()= 0;
virtual void SetGravity(float gravity)= 0;
- virtual int GetMaxJumps()= 0;
- virtual void SetMaxJumps(int maxJumps)= 0;
+ virtual unsigned char GetMaxJumps() = 0;
+ virtual void SetMaxJumps(unsigned char maxJumps) = 0;
- virtual int GetJumpCount()= 0;
+ virtual unsigned char GetJumpCount() = 0;
virtual void SetWalkDirection(const class MT_Vector3& dir)=0;
virtual MT_Vector3 GetWalkDirection()=0;