wall climb cheat from LCS

This commit is contained in:
Nikolay Korolev 2020-09-11 18:46:16 +03:00
parent f0b15ee053
commit e5faeea2e5
3 changed files with 55 additions and 2 deletions

View file

@ -89,6 +89,10 @@ bool CPad::IsAffectedByController = false;
_TODO("gbFastTime"); _TODO("gbFastTime");
extern bool gbFastTime; extern bool gbFastTime;
#ifdef WALLCLIMB_CHEAT
extern bool gGravityCheat;
#endif
void WeaponCheat1() void WeaponCheat1()
{ {
CHud::SetHelpMessage(TheText.Get("CHEAT2"), true); CHud::SetHelpMessage(TheText.Get("CHEAT2"), true);
@ -554,6 +558,22 @@ void AltDodoCheat(void)
} }
#endif #endif
#ifdef WALLCLIMB_CHEAT
void WallClimbingCheat(void)
{
wchar* string;
if (gGravityCheat) {
string = TheText.Get("CHEATOF");
gGravityCheat = false;
}
else {
string = TheText.Get("CHEAT1");
gGravityCheat = true;
}
CHud::SetHelpMessage(string, true);
}
#endif
void FlyingFishCheat(void) void FlyingFishCheat(void)
{ {
CHud::SetHelpMessage(TheText.Get("CHEAT1"), true); CHud::SetHelpMessage(TheText.Get("CHEAT1"), true);
@ -1430,6 +1450,12 @@ void CPad::AddToPCCheatString(char c)
AltDodoCheat(); AltDodoCheat();
#endif #endif
#ifdef WALLCLIMB_CHEAT
// "SPIDERCAR"
if (!_CHEATCMP("RACREDIPS"))
WallClimbingCheat();
#endif
#if !defined(PC_WATER) && defined(WATER_CHEATS) #if !defined(PC_WATER) && defined(WATER_CHEATS)
// SEABEDCHEAT // SEABEDCHEAT
if (!_CHEATCMP("TAEHCDEBAESON")) if (!_CHEATCMP("TAEHCDEBAESON"))

View file

@ -252,6 +252,7 @@ enum Config {
#define KANGAROO_CHEAT #define KANGAROO_CHEAT
#define ALLCARSHELI_CHEAT #define ALLCARSHELI_CHEAT
#define ALT_DODO_CHEAT #define ALT_DODO_CHEAT
#define WALLCLIMB_CHEAT
#define REGISTER_START_BUTTON #define REGISTER_START_BUTTON
//#define BIND_VEHICLE_FIREWEAPON // Adds ability to rebind fire key for 'in vehicle' controls //#define BIND_VEHICLE_FIREWEAPON // Adds ability to rebind fire key for 'in vehicle' controls

View file

@ -23,6 +23,11 @@
//--MIAMI: file done //--MIAMI: file done
#ifdef WALLCLIMB_CHEAT
bool gGravityCheat;
#endif
CPhysical::CPhysical(void) CPhysical::CPhysical(void)
{ {
int i; int i;
@ -521,8 +526,29 @@ CPhysical::ApplySpringDampening(float damping, CVector &springDir, CVector &poin
void void
CPhysical::ApplyGravity(void) CPhysical::ApplyGravity(void)
{ {
if(bAffectedByGravity) if (!bAffectedByGravity)
m_vecMoveSpeed.z -= GRAVITY * CTimer::GetTimeStep(); return;
#ifdef WALLCLIMB_CHEAT
if (gGravityCheat && this == FindPlayerVehicle()) {
static CVector v1(0.0f, 0.0f, 1.0f), v2(0.0f, 0.0f, 1.0f);
CVector prop = GetPosition() - (GetUp() + GetUp());
CColPoint point;
CEntity* entity;
if (CWorld::ProcessLineOfSight(GetPosition(), prop, point, entity, true, false, false, false, false, false))
v2 = point.normal;
else
v2 = CVector(0.0f, 0.0f, 1.0f);
float coef = clamp(CTimer::GetTimeStep() * 0.5f, 0.05f, 0.8f);
v1 = v1 * (1.0f - coef) + v2 * coef;
if (v1.MagnitudeSqr() < 0.1f)
v1 = CVector(0.0f, 0.0f, 1.0f);
else
v1.Normalise();
m_vecMoveSpeed -= GRAVITY * CTimer::GetTimeStep() * v1;
return;
}
#endif
m_vecMoveSpeed.z -= GRAVITY * CTimer::GetTimeStep();
} }
void void