mirror of
https://github.com/DrBeef/Raze.git
synced 2025-01-19 07:31:03 +00:00
- PlayerHorizon::calcviewpitch()
: Make returning horizoff
to 0 speed uniform across all games.
This commit is contained in:
parent
91f6b2954c
commit
ab99b6b29d
1 changed files with 12 additions and 12 deletions
|
@ -450,6 +450,13 @@ void PlayerAngle::applyinput(float const avel, ESyncBits* actions, double const
|
||||||
//
|
//
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Horizoff centre speed.
|
||||||
|
Duke: (1 / 8) * 30 = 3.75;
|
||||||
|
SW: (1 / 8) * 40 = 5;
|
||||||
|
Average: 4.375;
|
||||||
|
*/
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
// Values used by Duke/SW, where this function originated from.
|
// Values used by Duke/SW, where this function originated from.
|
||||||
|
@ -498,21 +505,14 @@ void PlayerHorizon::calcviewpitch(vec2_t const pos, binangle const ang, bool con
|
||||||
{
|
{
|
||||||
// tilt when climbing but you can't even really tell it.
|
// tilt when climbing but you can't even really tell it.
|
||||||
if (horizoff.asq16() < IntToFixed(100))
|
if (horizoff.asq16() < IntToFixed(100))
|
||||||
horizoff += q16horiz(xs_CRoundToInt(scaleAdjust * (((IntToFixed(100) - horizoff.asq16()) >> 3) + FRACUNIT)));
|
horizoff += buildfhoriz(scaleAdjust * (((100 - horizoff.asbuildf()) * (4.375 / GameTicRate)) + 1.));
|
||||||
}
|
}
|
||||||
else
|
else if (horizoff.asq16())
|
||||||
{
|
{
|
||||||
// Make horizoff grow towards 0 since horizoff is not modified when you're not on a slope.
|
// Make horizoff grow towards 0 since horizoff is not modified when you're not on a slope.
|
||||||
if (horizoff.asq16() > 0)
|
auto sgn = Sgn(horizoff.asq16());
|
||||||
{
|
horizoff -= buildfhoriz(scaleAdjust * ((horizoff.asbuildf() * (4.375 / GameTicRate)) + sgn));
|
||||||
horizoff += q16horiz(xs_CRoundToInt(-scaleAdjust * ((horizoff.asq16() >> 3) + FRACUNIT)));
|
if (sgn != Sgn(horizoff.asq16())) horizoff = q16horiz(0);
|
||||||
if (horizoff.asq16() < 0) horizoff = q16horiz(0);
|
|
||||||
}
|
|
||||||
if (horizoff.asq16() < 0)
|
|
||||||
{
|
|
||||||
horizoff += q16horiz(xs_CRoundToInt(-scaleAdjust * ((horizoff.asq16() >> 3) - FRACUNIT)));
|
|
||||||
if (horizoff.asq16() > 0) horizoff = q16horiz(0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue