mirror of
https://github.com/GTAmodding/re3.git
synced 2024-12-26 21:15:42 +00:00
initial CBike struct
This commit is contained in:
parent
03d9525eb6
commit
dbeaafbe99
4 changed files with 66 additions and 11 deletions
|
@ -3041,22 +3041,22 @@ CAutomobile::ProcessControlInputs(uint8 pad)
|
|||
// Steer left/right
|
||||
if(CCamera::m_bUseMouse3rdPerson && !CVehicle::m_bDisableMouseSteering){
|
||||
if(CPad::GetPad(pad)->GetMouseX() != 0.0f){
|
||||
m_fSteerRatio += fMouseSteerSens*CPad::GetPad(pad)->GetMouseX();
|
||||
m_fSteerInput += fMouseSteerSens*CPad::GetPad(pad)->GetMouseX();
|
||||
nLastControlInput = 2;
|
||||
if(Abs(m_fSteerRatio) < fMouseCentreRange)
|
||||
m_fSteerRatio *= Pow(fMouseCentreMult, CTimer::GetTimeStep());
|
||||
if(Abs(m_fSteerInput) < fMouseCentreRange)
|
||||
m_fSteerInput *= Pow(fMouseCentreMult, CTimer::GetTimeStep());
|
||||
}else if(CPad::GetPad(pad)->GetSteeringLeftRight() || nLastControlInput != 2){
|
||||
// mouse hasn't move, steer with pad like below
|
||||
m_fSteerRatio += (-CPad::GetPad(pad)->GetSteeringLeftRight()/128.0f - m_fSteerRatio)*
|
||||
m_fSteerInput += (-CPad::GetPad(pad)->GetSteeringLeftRight()/128.0f - m_fSteerInput)*
|
||||
0.2f*CTimer::GetTimeStep();
|
||||
nLastControlInput = 0;
|
||||
}
|
||||
}else{
|
||||
m_fSteerRatio += (-CPad::GetPad(pad)->GetSteeringLeftRight()/128.0f - m_fSteerRatio)*
|
||||
m_fSteerInput += (-CPad::GetPad(pad)->GetSteeringLeftRight()/128.0f - m_fSteerInput)*
|
||||
0.2f*CTimer::GetTimeStep();
|
||||
nLastControlInput = 0;
|
||||
}
|
||||
m_fSteerRatio = clamp(m_fSteerRatio, -1.0f, 1.0f);
|
||||
m_fSteerInput = clamp(m_fSteerInput, -1.0f, 1.0f);
|
||||
|
||||
// Accelerate/Brake
|
||||
float acceleration = (CPad::GetPad(pad)->GetAccelerate() - CPad::GetPad(pad)->GetBrake())/255.0f;
|
||||
|
@ -3113,10 +3113,10 @@ CAutomobile::ProcessControlInputs(uint8 pad)
|
|||
|
||||
// Actually turn wheels
|
||||
static float fValue; // why static?
|
||||
if(m_fSteerRatio < 0.0f)
|
||||
fValue = -sq(m_fSteerRatio);
|
||||
if(m_fSteerInput < 0.0f)
|
||||
fValue = -sq(m_fSteerInput);
|
||||
else
|
||||
fValue = sq(m_fSteerRatio);
|
||||
fValue = sq(m_fSteerInput);
|
||||
m_fSteerAngle = DEGTORAD(pHandling->fSteeringLock) * fValue;
|
||||
|
||||
if(bComedyControls){
|
||||
|
|
|
@ -20,3 +20,58 @@ enum eBikePositions
|
|||
BIKE_POS_BACKSEAT,
|
||||
BIKE_POS_EXHAUST
|
||||
};
|
||||
|
||||
class CBike : public CVehicle
|
||||
{
|
||||
public:
|
||||
RwFrame *m_aBikeNodes[BIKE_NUM_NODES];
|
||||
bool m_bLeanMatrixCalculated;
|
||||
CMatrix m_leanMatrix;
|
||||
CVector wheelieNormal;
|
||||
CVector wheelieRight;
|
||||
tBikeHandlingData *pBikeHandling;
|
||||
int32 m_bikeAnimType;
|
||||
uint8 m_wheelStatus[2];
|
||||
CColPoint m_aWheelColPoints[4];
|
||||
float m_aSuspensionSpringRatio[4];
|
||||
float m_aSuspensionSpringRatioPrev[4];
|
||||
float m_aWheelTimer[4];
|
||||
float m_bike_unused1;
|
||||
eSkidmarkType m_aWheelSkidmarkType[2];
|
||||
bool m_aWheelSkidmarkBloody[2];
|
||||
bool m_aWheelSkidmarkUnk[2];
|
||||
float m_aWheelRotation[2];
|
||||
float m_aWheelSpeed[2];
|
||||
float m_aWheelPosition[2];
|
||||
float m_aWheelBasePosition[2];
|
||||
float m_aSuspensionSpringLength[4];
|
||||
float m_aSuspensionLineLength[4];
|
||||
float m_fHeightAboveRoad;
|
||||
float m_fTraction;
|
||||
float m_fRearForkLength;
|
||||
float m_fFrontForkY;
|
||||
float m_fFrontForkZ;
|
||||
float m_fFrontForkSlope;
|
||||
float m_fBikeSteerAngle;
|
||||
float m_fLeanLRAngle;
|
||||
float m_fLeanLRAngle2;
|
||||
float m_fLeanInput;
|
||||
uint32 field_478;
|
||||
uint32 field_47C;
|
||||
uint8 m_bike_unused2;
|
||||
uint8 unused[3]; // looks like padding..but for what?
|
||||
uint8 m_bike_flags;
|
||||
int16 m_doingBurnout;
|
||||
float m_fTireTemperature;
|
||||
float someAngle;
|
||||
uint32 field_490;
|
||||
float m_fFireBlowUpTimer;
|
||||
CPhysical *m_aGroundPhysical[4];
|
||||
CVector m_aGroundOffset[4];
|
||||
CEntity *m_pSetOnFireEntity;
|
||||
uint8 m_nWheelsOnGround;
|
||||
uint8 m_nDriveWheelsOnGround;
|
||||
uint8 m_nDriveWheelsOnGroundPrev;
|
||||
float m_fGasPedalAudio;
|
||||
tWheelState m_aWheelState[2];
|
||||
};
|
||||
|
|
|
@ -70,7 +70,7 @@ CVehicle::CVehicle(uint8 CreatedBy)
|
|||
|
||||
m_nCurrentGear = 1;
|
||||
m_fChangeGearTime = 0.0f;
|
||||
m_fSteerRatio = 0.0f;
|
||||
m_fSteerInput = 0.0f;
|
||||
m_type = ENTITY_TYPE_VEHICLE;
|
||||
VehicleCreatedBy = CreatedBy;
|
||||
m_nRouteSeed = 0;
|
||||
|
|
|
@ -242,7 +242,7 @@ public:
|
|||
uint8 m_nCarHornDelay;
|
||||
int8 m_comedyControlState;
|
||||
CStoredCollPoly m_aCollPolys[2]; // poly which is under front/rear part of car
|
||||
float m_fSteerRatio;
|
||||
float m_fSteerInput;
|
||||
eVehicleType m_vehType;
|
||||
|
||||
static void *operator new(size_t);
|
||||
|
|
Loading…
Reference in a new issue