summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRoman Masanin <36927roma@gmail.com>2020-10-01 01:20:09 +0200
committerRoman Masanin <36927roma@gmail.com>2020-10-01 01:20:09 +0200
commitfe46aa5cc25d52ec434860d4ee72fbb1347adbe9 (patch)
treeec4c6228f1d52627a602054fe9d682cc0ac1e569 /src
parentnew implementation for car fly enhancment (diff)
downloadre3-fe46aa5cc25d52ec434860d4ee72fbb1347adbe9.tar
re3-fe46aa5cc25d52ec434860d4ee72fbb1347adbe9.tar.gz
re3-fe46aa5cc25d52ec434860d4ee72fbb1347adbe9.tar.bz2
re3-fe46aa5cc25d52ec434860d4ee72fbb1347adbe9.tar.lz
re3-fe46aa5cc25d52ec434860d4ee72fbb1347adbe9.tar.xz
re3-fe46aa5cc25d52ec434860d4ee72fbb1347adbe9.tar.zst
re3-fe46aa5cc25d52ec434860d4ee72fbb1347adbe9.zip
Diffstat (limited to 'src')
-rw-r--r--src/core/ControllerConfig.cpp3
-rw-r--r--src/core/Pad.cpp20
-rw-r--r--src/core/config.h2
-rw-r--r--src/vehicles/Automobile.cpp18
-rw-r--r--src/vehicles/Vehicle.cpp35
-rw-r--r--src/vehicles/Vehicle.h2
6 files changed, 47 insertions, 33 deletions
diff --git a/src/core/ControllerConfig.cpp b/src/core/ControllerConfig.cpp
index bdfab34c..71bacbbd 100644
--- a/src/core/ControllerConfig.cpp
+++ b/src/core/ControllerConfig.cpp
@@ -734,6 +734,9 @@ void CControllerConfigManager::AffectControllerStateOn_ButtonDown_Driving(int32
#ifdef FIX_BUGS
|| (CVehicle::bAllDodosCheat && !FindPlayerVehicle()->IsRealHeli())
#endif
+#ifdef BETTER_ALLCARSAREDODO_CHEAT
+ || (CVehicle::bAltDodoCheat && !FindPlayerVehicle()->IsRealHeli())
+#endif
)))
{
isDodo = true;
diff --git a/src/core/Pad.cpp b/src/core/Pad.cpp
index 36e14e55..6e9a37b3 100644
--- a/src/core/Pad.cpp
+++ b/src/core/Pad.cpp
@@ -542,8 +542,8 @@ void AllCarsHeliCheat(void)
}
#endif
-#ifdef ALT_DODO_CHEAT
-void AltDodoCheat(void)
+#ifdef BETTER_ALLCARSAREDODO_CHEAT
+void AllCarsPlaneCheat(void)
{
wchar* string;
if (CVehicle::bAltDodoCheat) {
@@ -1444,10 +1444,10 @@ void CPad::AddToPCCheatString(char c)
AllCarsHeliCheat();
#endif
-#ifdef ALT_DODO_CHEAT
- // "IWANTTOMASTERDODO"
- if (!_CHEATCMP("ODODRETSAMOTTNAWI"))
- AltDodoCheat();
+#ifdef BETTER_ALLCARSAREDODO_CHEAT
+ // "CARSAREPLANE"
+ if (!_CHEATCMP("ENALPERASRAC"))
+ AllCarsPlaneCheat();
#endif
#ifdef WALLCLIMB_CHEAT
@@ -3166,6 +3166,14 @@ void CPad::ResetCheats(void)
CVehicle::bCheat4 = false;
CVehicle::bCheat5 = false;
CVehicle::bCheat8 = false;
+#ifdef RESTORE_ALLCARSHELI_CHEAT
+ bAllCarCheat = false;
+#endif
+#ifdef BETTER_ALLCARSAREDODO_CHEAT
+ CVehicle::bAltDodoCheat = false;
+#endif
+
+
gbBlackCars = false;
gbPinkCars = false;
CCarCtrl::bMadDriversCheat = false;
diff --git a/src/core/config.h b/src/core/config.h
index 327230d0..475a63f8 100644
--- a/src/core/config.h
+++ b/src/core/config.h
@@ -251,7 +251,7 @@ enum Config {
#define DETECT_PAD_INPUT_SWITCH // Adds automatic switch of pad related stuff between controller and kb/m
#define KANGAROO_CHEAT
#define RESTORE_ALLCARSHELI_CHEAT
-#define ALT_DODO_CHEAT
+#define BETTER_ALLCARSAREDODO_CHEAT
#define WALLCLIMB_CHEAT
#define REGISTER_START_BUTTON
//#define BIND_VEHICLE_FIREWEAPON // Adds ability to rebind fire key for 'in vehicle' controls
diff --git a/src/vehicles/Automobile.cpp b/src/vehicles/Automobile.cpp
index 24c84703..08fe7718 100644
--- a/src/vehicles/Automobile.cpp
+++ b/src/vehicles/Automobile.cpp
@@ -1375,6 +1375,13 @@ CAutomobile::ProcessControl(void)
// Flying
bool playRotorSound = false;
+ bool isPlane = GetModelIndex() == MI_DODO || bAllDodosCheat;
+#ifdef BETTER_ALLCARSAREDODO_CHEAT
+ isPlane = isPlane || bAltDodoCheat;
+#endif
+#ifdef FIX_BUGS
+ isPlane = isPlane && !IsRealHeli();
+#endif
if(GetStatus() != STATUS_PLAYER && GetStatus() != STATUS_PLAYER_REMOTE && GetStatus() != STATUS_PHYSICS){
if(IsRealHeli()){
bEngineOn = false;
@@ -1383,16 +1390,7 @@ CAutomobile::ProcessControl(void)
if(m_aWheelSpeed[1] < 0.154f && m_aWheelSpeed[1] > 0.0044f)
playRotorSound = true;
}
- }else if((GetModelIndex() == MI_DODO || CVehicle::bAllDodosCheat) &&
-#ifdef FIX_BUGS
- !IsRealHeli() &&
-#endif
- m_vecMoveSpeed.Magnitude() > 0.0f && CTimer::GetTimeStep() > 0.0f){
-#ifdef ALT_DODO_CHEAT
- if (bAltDodoCheat)
- FlyingControl(FLIGHT_MODEL_PLANE_UNUSED);
- else
-#endif
+ }else if(isPlane && m_vecMoveSpeed.Magnitude() > 0.0f && CTimer::GetTimeStep() > 0.0f){
if(GetModelIndex() == MI_DODO)
FlyingControl(FLIGHT_MODEL_DODO);
else
diff --git a/src/vehicles/Vehicle.cpp b/src/vehicles/Vehicle.cpp
index d53f3c9f..82bdcdda 100644
--- a/src/vehicles/Vehicle.cpp
+++ b/src/vehicles/Vehicle.cpp
@@ -41,7 +41,7 @@ bool CVehicle::bCheat3;
bool CVehicle::bCheat4;
bool CVehicle::bCheat5;
bool CVehicle::bCheat8;
-#ifdef ALT_DODO_CHEAT
+#ifdef BETTER_ALLCARSAREDODO_CHEAT
bool CVehicle::bAltDodoCheat;
#endif
bool CVehicle::bHoverCheat;
@@ -351,25 +351,26 @@ CVehicle::FlyingControl(eFlightModel flightModel)
fSteerUD *= -fSteerMult;
// thrust
- float fHandlingThrust = pFlyingHandling->fThrust;
+ float fThrust = pFlyingHandling->fThrust;
float fThrustFallOff = pFlyingHandling->fThrustFallOff;
float fThrustFallOffBack = pFlyingHandling->fThrustFallOff * 8.0f;
-#ifdef ALT_DODO_CHEAT
+#ifdef BETTER_ALLCARSAREDODO_CHEAT
if (bAltDodoCheat && !IsRealPlane()) {
- fHandlingThrust = pHandling->Transmission.fEngineAcceleration;
- fHandlingThrust *= pHandling->Transmission.nDriveType == '4' ? 4 : 2;
- fThrustFallOff = 0.7f / pHandling->Transmission.fMaxVelocity;
- fThrustFallOffBack = 0.7f / pHandling->Transmission.fMaxReverseVelocity;
+ fThrust = pHandling->Transmission.fEngineAcceleration
+ * pHandling->Transmission.nDriveType == '4' ? 4.0f : 2.0f;
+ fThrust = 5.0f * Max(fThrust, pFlyingHandling->fThrust);
+ fThrustFallOff = Min(1.0f / pHandling->Transmission.fMaxVelocity, fThrustFallOff);
+ fThrustFallOffBack = -1.0f / pHandling->Transmission.fMaxReverseVelocity;
}
-#endif // ALT_DOOD_CHEAT
+#endif
float fForwSpeed = DotProduct(GetMoveSpeed(), GetForward());
CVector vecTail = GetColModel()->boundingBox.min.y * GetForward();
- float fThrust = (CPad::GetPad(0)->GetAccelerate() - CPad::GetPad(0)->GetBrake()) / 255.0f;
+ float fPedalState = (CPad::GetPad(0)->GetAccelerate() - CPad::GetPad(0)->GetBrake()) / 255.0f;
float fThrustAccel;
- if(fForwSpeed > 0.0f || fThrust > 0.0f)
- fThrustAccel = (fThrust - fThrustFallOff * fForwSpeed) * fHandlingThrust;
+ if(fForwSpeed > 0.0f || fPedalState > 0.0f)
+ fThrustAccel = (fPedalState - fThrustFallOff * fForwSpeed) * fThrust;
else
- fThrustAccel = Min(fThrust - fThrustFallOffBack * fForwSpeed, 0.0f) * fHandlingThrust;
+ fThrustAccel = Min(fPedalState - fThrustFallOffBack * fForwSpeed, 0.0f) * fThrust;
if(flightModel == FLIGHT_MODEL_PLANE_UNUSED)
fThrustAccel *= 0.3f;
else if(flightModel == FLIGHT_MODEL_PLANE)
@@ -407,14 +408,18 @@ CVehicle::FlyingControl(eFlightModel flightModel)
float fPitchAccel = pFlyingHandling->fPitchStab * fTail * Abs(fTail) + pFlyingHandling->fPitch * fSteerUD * fForwSpeed;
ApplyTurnForce(fPitchAccel * m_fTurnMass * GetUp() * CTimer::GetTimeStep(), vecTail);
- float fLift = -DotProduct(GetMoveSpeed(), GetUp()) / Max(0.01f, GetMoveSpeed().Magnitude());
- float fLiftAccel = (pFlyingHandling->fAttackLift * fLift + pFlyingHandling->fFormLift) * fForwSpeed * fForwSpeed;
+ float fLift = DotProduct(GetMoveSpeed(), GetUp()) / Max(0.01f, GetMoveSpeed().Magnitude()); //accel*angle
+ float fLiftAccel = (pFlyingHandling->fFormLift - pFlyingHandling->fAttackLift * fLift) * SQR(fForwSpeed);
float fLiftImpulse = fLiftAccel * m_fMass * CTimer::GetTimeStep();
if (GRAVITY * CTimer::GetTimeStep() * m_fMass < fLiftImpulse) {
if (flightModel == FLIGHT_MODEL_RCPLANE && GetPosition().z > 50.0f)
fLiftImpulse = CTimer::GetTimeStep() * 0.9f*GRAVITY * m_fMass;
else if (flightModel == FLIGHT_MODEL_SEAPLANE && GetPosition().z > 80.0f)
fLiftImpulse = CTimer::GetTimeStep() * 0.9f*GRAVITY * m_fMass;
+#ifdef BETTER_ALLCARSAREDODO_CHEAT
+ else if(GetPosition().z > 180.0f)
+ fLiftImpulse = CTimer::GetTimeStep() * 0.9f * GRAVITY * m_fMass;
+#endif
}
ApplyMoveForce(fLiftImpulse * GetUp());
@@ -444,7 +449,7 @@ CVehicle::FlyingControl(eFlightModel flightModel)
case FLIGHT_MODEL_HELI:
{
#ifdef RESTORE_ALLCARSHELI_CHEAT
- tFlyingHandlingData* flyingHandling = bAllCarCheat && GetStatus() == STATUS_PLAYER && !IsRealHeli() ? mod_HandlingManager.GetFlyingPointer(HANDLING_MAVERICK) : pFlyingHandling;
+ tFlyingHandlingData* flyingHandling = bAllCarCheat && !IsRealHeli() ? mod_HandlingManager.GetFlyingPointer(HANDLING_MAVERICK) : pFlyingHandling;
#else
tFlyingHandlingData* flyingHandling = pFlyingHandling;
#endif
diff --git a/src/vehicles/Vehicle.h b/src/vehicles/Vehicle.h
index 34106327..30f84ede 100644
--- a/src/vehicles/Vehicle.h
+++ b/src/vehicles/Vehicle.h
@@ -400,7 +400,7 @@ public:
static bool bCheat4;
static bool bCheat5;
static bool bCheat8;
-#ifdef ALT_DODO_CHEAT
+#ifdef BETTER_ALLCARSAREDODO_CHEAT
static bool bAltDodoCheat;
#endif
static bool bHoverCheat;