diff options
Diffstat (limited to 'src/entities/Physical.h')
-rw-r--r-- | src/entities/Physical.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/entities/Physical.h b/src/entities/Physical.h index f552da6c..71e30485 100644 --- a/src/entities/Physical.h +++ b/src/entities/Physical.h @@ -61,9 +61,13 @@ public: uint8 m_bIsVehicleBeingShifted : 1; // wrong name - also used on but never set for peds uint8 bJustCheckCollision : 1; // just see if there is a collision +bool phys_lcs_unk1; + uint8 m_nSurfaceTouched; int8 m_nZoneLevel; +int8 phys_lcs_unk2; + CPhysical(void); ~CPhysical(void); @@ -75,6 +79,9 @@ public: void ProcessShift(void); void ProcessCollision(void); + // these two are virtual in LCS...why? + virtual void ApplyMoveSpeed(void); + virtual void ApplyTurnSpeed(void); virtual int32 ProcessEntityCollision(CEntity *ent, CColPoint *colpoints); void RemoveAndAdd(void); @@ -141,8 +148,6 @@ public: m_vecCentreOfMass.z = z; } - void ApplyMoveSpeed(void); - void ApplyTurnSpeed(void); // Force actually means Impulse here void ApplyMoveForce(float jx, float jy, float jz); void ApplyMoveForce(const CVector &j) { ApplyMoveForce(j.x, j.y, j.z); } @@ -150,14 +155,15 @@ public: void ApplyTurnForce(float jx, float jy, float jz, float px, float py, float pz); // j is direction of force, p is point relative to model center where force is applied void ApplyTurnForce(const CVector &j, const CVector &p) { ApplyTurnForce(j.x, j.y, j.z, p.x, p.y, p.z); } + void ApplyTurnForceMultiplayer(const CVector &j, const CVector &p); void ApplyFrictionMoveForce(float jx, float jy, float jz); void ApplyFrictionMoveForce(const CVector &j) { ApplyFrictionMoveForce(j.x, j.y, j.z); } void ApplyFrictionTurnForce(float jx, float jy, float jz, float rx, float ry, float rz); void ApplyFrictionTurnForce(const CVector &j, const CVector &p) { ApplyFrictionTurnForce(j.x, j.y, j.z, p.x, p.y, p.z); } // springRatio: 1.0 fully extended, 0.0 fully compressed bool ApplySpringCollision(float springConst, CVector &springDir, CVector &point, float springRatio, float bias); - bool ApplySpringCollisionAlt(float springConst, CVector &springDir, CVector &point, float springRatio, float bias, CVector &forceDir); - bool ApplySpringDampening(float damping, CVector &springDir, CVector &point, CVector &speed); + bool ApplySpringCollisionAlt(float springConst, CVector &springDir, CVector &point, float springRatio, float bias, CVector &forceDir, float &impulse); + bool ApplySpringDampening(float damping, float dampingLimit, CVector &springDir, CVector &point, CVector &speed); void ApplyGravity(void); void ApplyFriction(void); void ApplyAirResistance(void); @@ -172,4 +178,10 @@ public: bool ProcessCollisionSectorList(CPtrList *lists); bool CheckCollision(void); bool CheckCollision_SimpleCar(void); + + void SendMuliVehicleCollision(CEntity *,CColPoint *,float) {} + + // TEMP + bool ApplySpringCollisionAlt(float springConst, CVector &springDir, CVector &point, float springRatio, float bias, CVector &forceDir); + bool ApplySpringDampening(float damping, CVector &springDir, CVector &point, CVector &speed); }; |