mirror of
https://github.com/ZDoom/Raze.git
synced 2025-03-22 17:01:08 +00:00
- Duke: Use the player's angle when adjusting vehicle's HUD rotation.
This commit is contained in:
parent
14629e7b2b
commit
918789705f
3 changed files with 7 additions and 6 deletions
|
@ -65,7 +65,7 @@ static inline DAngle getscaledangle(const DAngle angle, const double scale, cons
|
|||
return (angle.Normalized180() * getTicrateScale(scale)) + DAngle::fromDeg(push);
|
||||
}
|
||||
|
||||
static bool scaletozero(DAngle& angle, const double scale, const double push = (7646143. / 110386328.))
|
||||
bool scaletozero(DAngle& angle, const double scale, const double push)
|
||||
{
|
||||
const auto sgn = angle.Sgn();
|
||||
|
||||
|
|
|
@ -174,3 +174,4 @@ extern GameInput gameInput;
|
|||
class FSerializer;
|
||||
FSerializer& Serialize(FSerializer& arc, const char* keyname, PlayerAngles& w, PlayerAngles* def);
|
||||
void processCrouchToggle(bool& toggle, ESyncBits& actions, const bool crouchable, const bool disabletoggle);
|
||||
bool scaletozero(DAngle& angle, const double scale, const double push = (7646143. / 110386328.));
|
||||
|
|
|
@ -721,11 +721,11 @@ static unsigned outVehicleFlags(player_struct* p, ESyncBits& actions)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void doVehicleTilting(player_struct* const p, const int turndir, const bool canTilt)
|
||||
static void doVehicleTilting(player_struct* const p, const bool canTilt)
|
||||
{
|
||||
constexpr auto amt = DAngle::fromBuild(1);
|
||||
p->oTiltStatus = p->TiltStatus;
|
||||
p->TiltStatus = clamp(p->TiltStatus + (turndir && canTilt ? amt : -amt * p->TiltStatus.Sgn()), -amt, amt);
|
||||
p->TiltStatus += DAngle::fromDeg(p->sync.avel * 0.375 * canTilt);
|
||||
scaletozero(p->TiltStatus, 10.);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -958,7 +958,7 @@ static void onMotorcycle(int snum, ESyncBits &actions)
|
|||
auto pact = p->GetActor();
|
||||
|
||||
unsigned flags = outVehicleFlags(p, actions);
|
||||
doVehicleTilting(p, Sgn(p->sync.avel) * Sgn(p->MotoSpeed), !p->on_ground || p->sync.avel);
|
||||
doVehicleTilting(p, !p->on_ground || p->sync.avel);
|
||||
|
||||
if (p->MotoSpeed < 0 || p->moto_underwater)
|
||||
p->MotoSpeed = 0;
|
||||
|
@ -1054,7 +1054,7 @@ static void onBoat(int snum, ESyncBits &actions)
|
|||
p->MotoSpeed = 0;
|
||||
|
||||
unsigned flags = outVehicleFlags(p, actions);
|
||||
doVehicleTilting(p, Sgn(p->sync.avel), (p->MotoSpeed != 0 && (p->sync.avel || p->moto_drink)) || !p->NotOnWater);
|
||||
doVehicleTilting(p, (p->MotoSpeed != 0 && (p->sync.avel || p->moto_drink)) || !p->NotOnWater);
|
||||
doVehicleSounds(p, pact, flags, 87, 88, 89, 90);
|
||||
|
||||
if (!p->NotOnWater)
|
||||
|
|
Loading…
Reference in a new issue