mirror of
https://github.com/GTAmodding/re3.git
synced 2024-12-27 12:35:40 +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
|
// Steer left/right
|
||||||
if(CCamera::m_bUseMouse3rdPerson && !CVehicle::m_bDisableMouseSteering){
|
if(CCamera::m_bUseMouse3rdPerson && !CVehicle::m_bDisableMouseSteering){
|
||||||
if(CPad::GetPad(pad)->GetMouseX() != 0.0f){
|
if(CPad::GetPad(pad)->GetMouseX() != 0.0f){
|
||||||
m_fSteerRatio += fMouseSteerSens*CPad::GetPad(pad)->GetMouseX();
|
m_fSteerInput += fMouseSteerSens*CPad::GetPad(pad)->GetMouseX();
|
||||||
nLastControlInput = 2;
|
nLastControlInput = 2;
|
||||||
if(Abs(m_fSteerRatio) < fMouseCentreRange)
|
if(Abs(m_fSteerInput) < fMouseCentreRange)
|
||||||
m_fSteerRatio *= Pow(fMouseCentreMult, CTimer::GetTimeStep());
|
m_fSteerInput *= Pow(fMouseCentreMult, CTimer::GetTimeStep());
|
||||||
}else if(CPad::GetPad(pad)->GetSteeringLeftRight() || nLastControlInput != 2){
|
}else if(CPad::GetPad(pad)->GetSteeringLeftRight() || nLastControlInput != 2){
|
||||||
// mouse hasn't move, steer with pad like below
|
// 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();
|
0.2f*CTimer::GetTimeStep();
|
||||||
nLastControlInput = 0;
|
nLastControlInput = 0;
|
||||||
}
|
}
|
||||||
}else{
|
}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();
|
0.2f*CTimer::GetTimeStep();
|
||||||
nLastControlInput = 0;
|
nLastControlInput = 0;
|
||||||
}
|
}
|
||||||
m_fSteerRatio = clamp(m_fSteerRatio, -1.0f, 1.0f);
|
m_fSteerInput = clamp(m_fSteerInput, -1.0f, 1.0f);
|
||||||
|
|
||||||
// Accelerate/Brake
|
// Accelerate/Brake
|
||||||
float acceleration = (CPad::GetPad(pad)->GetAccelerate() - CPad::GetPad(pad)->GetBrake())/255.0f;
|
float acceleration = (CPad::GetPad(pad)->GetAccelerate() - CPad::GetPad(pad)->GetBrake())/255.0f;
|
||||||
|
@ -3113,10 +3113,10 @@ CAutomobile::ProcessControlInputs(uint8 pad)
|
||||||
|
|
||||||
// Actually turn wheels
|
// Actually turn wheels
|
||||||
static float fValue; // why static?
|
static float fValue; // why static?
|
||||||
if(m_fSteerRatio < 0.0f)
|
if(m_fSteerInput < 0.0f)
|
||||||
fValue = -sq(m_fSteerRatio);
|
fValue = -sq(m_fSteerInput);
|
||||||
else
|
else
|
||||||
fValue = sq(m_fSteerRatio);
|
fValue = sq(m_fSteerInput);
|
||||||
m_fSteerAngle = DEGTORAD(pHandling->fSteeringLock) * fValue;
|
m_fSteerAngle = DEGTORAD(pHandling->fSteeringLock) * fValue;
|
||||||
|
|
||||||
if(bComedyControls){
|
if(bComedyControls){
|
||||||
|
|
|
@ -20,3 +20,58 @@ enum eBikePositions
|
||||||
BIKE_POS_BACKSEAT,
|
BIKE_POS_BACKSEAT,
|
||||||
BIKE_POS_EXHAUST
|
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_nCurrentGear = 1;
|
||||||
m_fChangeGearTime = 0.0f;
|
m_fChangeGearTime = 0.0f;
|
||||||
m_fSteerRatio = 0.0f;
|
m_fSteerInput = 0.0f;
|
||||||
m_type = ENTITY_TYPE_VEHICLE;
|
m_type = ENTITY_TYPE_VEHICLE;
|
||||||
VehicleCreatedBy = CreatedBy;
|
VehicleCreatedBy = CreatedBy;
|
||||||
m_nRouteSeed = 0;
|
m_nRouteSeed = 0;
|
||||||
|
|
|
@ -242,7 +242,7 @@ public:
|
||||||
uint8 m_nCarHornDelay;
|
uint8 m_nCarHornDelay;
|
||||||
int8 m_comedyControlState;
|
int8 m_comedyControlState;
|
||||||
CStoredCollPoly m_aCollPolys[2]; // poly which is under front/rear part of car
|
CStoredCollPoly m_aCollPolys[2]; // poly which is under front/rear part of car
|
||||||
float m_fSteerRatio;
|
float m_fSteerInput;
|
||||||
eVehicleType m_vehType;
|
eVehicleType m_vehType;
|
||||||
|
|
||||||
static void *operator new(size_t);
|
static void *operator new(size_t);
|
||||||
|
|
Loading…
Reference in a new issue