summaryrefslogtreecommitdiffstats
path: root/src/entities
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2019-07-08 21:37:47 +0200
committeraap <aap@papnet.eu>2019-07-08 21:37:47 +0200
commit2ae112fdf6b90bb4435dba34bcc2a23604e1e158 (patch)
tree5137e9ee1d2b01cd1a125409f1cb23a92a142d9f /src/entities
parentlittle changes; one more function of CAutomobile (diff)
downloadre3-2ae112fdf6b90bb4435dba34bcc2a23604e1e158.tar
re3-2ae112fdf6b90bb4435dba34bcc2a23604e1e158.tar.gz
re3-2ae112fdf6b90bb4435dba34bcc2a23604e1e158.tar.bz2
re3-2ae112fdf6b90bb4435dba34bcc2a23604e1e158.tar.lz
re3-2ae112fdf6b90bb4435dba34bcc2a23604e1e158.tar.xz
re3-2ae112fdf6b90bb4435dba34bcc2a23604e1e158.tar.zst
re3-2ae112fdf6b90bb4435dba34bcc2a23604e1e158.zip
Diffstat (limited to 'src/entities')
-rw-r--r--src/entities/Physical.cpp8
-rw-r--r--src/entities/Physical.h18
2 files changed, 22 insertions, 4 deletions
diff --git a/src/entities/Physical.cpp b/src/entities/Physical.cpp
index b2512ec2..c67dad84 100644
--- a/src/entities/Physical.cpp
+++ b/src/entities/Physical.cpp
@@ -457,7 +457,7 @@ CPhysical::ApplySpringCollision(float springConst, CVector &springDir, CVector &
float compression = 1.0f - springRatio;
if(compression > 0.0f){
float step = min(CTimer::GetTimeStep(), 3.0f);
- float impulse = -0.008f*m_fMass*step * springConst * compression * bias*2.0f;
+ float impulse = -GRAVITY*m_fMass*step * springConst * compression * bias*2.0f;
ApplyMoveForce(springDir*impulse);
ApplyTurnForce(springDir*impulse, point);
}
@@ -489,7 +489,7 @@ void
CPhysical::ApplyGravity(void)
{
if(bAffectedByGravity)
- m_vecMoveSpeed.z -= 0.008f * CTimer::GetTimeStep();
+ m_vecMoveSpeed.z -= GRAVITY * CTimer::GetTimeStep();
}
void
@@ -1783,7 +1783,7 @@ CPhysical::ProcessShift(void)
}
bIsStuck = false;
bIsInSafePosition = true;
- m_fDistanceTravelled = (GetPosition() - *matrix.GetPosition()).Magnitude();
+ m_fDistanceTravelled = (GetPosition() - matrix.GetPosition()).Magnitude();
RemoveAndAdd();
}
}
@@ -1925,7 +1925,7 @@ CPhysical::ProcessCollision(void)
}
}
bHitByTrain = false;
- m_fDistanceTravelled = (GetPosition() - *savedMatrix.GetPosition()).Magnitude();
+ m_fDistanceTravelled = (GetPosition() - savedMatrix.GetPosition()).Magnitude();
m_phy_flagA80 = false;
bIsStuck = false;
diff --git a/src/entities/Physical.h b/src/entities/Physical.h
index c1f9f1d9..c2fce334 100644
--- a/src/entities/Physical.h
+++ b/src/entities/Physical.h
@@ -8,6 +8,8 @@ enum {
PHYSICAL_MAX_COLLISIONRECORDS = 6
};
+#define GRAVITY (0.008f)
+
class CTreadable;
class CPhysical : public CEntity
@@ -108,7 +110,23 @@ public:
}
const CVector &GetMoveSpeed() { return m_vecMoveSpeed; }
+ void SetMoveSpeed(float x, float y, float z) {
+ m_vecMoveSpeed.x = x;
+ m_vecMoveSpeed.y = y;
+ m_vecMoveSpeed.z = z;
+ }
const CVector &GetTurnSpeed() { return m_vecTurnSpeed; }
+ void SetTurnSpeed(float x, float y, float z) {
+ m_vecTurnSpeed.x = x;
+ m_vecTurnSpeed.y = y;
+ m_vecTurnSpeed.z = z;
+ }
+ const CVector &GetCenterOfMass() { return m_vecCentreOfMass; }
+ void SetCenterOfMass(float x, float y, float z) {
+ m_vecCentreOfMass.x = x;
+ m_vecCentreOfMass.y = y;
+ m_vecCentreOfMass.z = z;
+ }
void ApplyMoveSpeed(void);
void ApplyTurnSpeed(void);