From 7e393e04a51145159277fa745dae156c56ad30ce Mon Sep 17 00:00:00 2001 From: Mitchell Richters Date: Wed, 4 Oct 2023 22:05:03 +1100 Subject: [PATCH] - Duke: Remove casts from setting RR vehicle velocities and consolidate setup into an inline. --- source/games/duke/src/inlines.h | 2 +- source/games/duke/src/player_d.cpp | 2 +- source/games/duke/src/player_r.cpp | 17 ++++++++++++++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/source/games/duke/src/inlines.h b/source/games/duke/src/inlines.h index 5edfe4200..022167355 100644 --- a/source/games/duke/src/inlines.h +++ b/source/games/duke/src/inlines.h @@ -219,7 +219,7 @@ inline int monsterCheatCheck(DDukeActor* self) return false; } -inline void processinputvel(DDukePlayer* const p) +inline void rotateInputVel(DDukePlayer* const p) { p->cmd.ucmd.vel.XY() = p->cmd.ucmd.vel.XY().Rotated(p->GetActor()->spr.Angles.Yaw) + p->fric; } diff --git a/source/games/duke/src/player_d.cpp b/source/games/duke/src/player_d.cpp index 2095e53c3..803078e2f 100644 --- a/source/games/duke/src/player_d.cpp +++ b/source/games/duke/src/player_d.cpp @@ -1539,7 +1539,7 @@ void processinput_d(DDukePlayer* const p) const auto strafeVel = p->cmd.ucmd.vel.Y; constexpr auto maxVel = (117351124. / 10884538.); - processinputvel(p); + rotateInputVel(p); auto psectp = p->cursector; if (psectp == nullptr) diff --git a/source/games/duke/src/player_r.cpp b/source/games/duke/src/player_r.cpp index cac106bc8..cfa61faa5 100644 --- a/source/games/duke/src/player_r.cpp +++ b/source/games/duke/src/player_r.cpp @@ -963,6 +963,17 @@ static void doVehicleThrottling(DDukePlayer* p, DDukeActor* pact, unsigned& flag // //--------------------------------------------------------------------------- +static inline void setVehicleInputVel(DDukePlayer* const p) +{ + p->cmd.ucmd.vel.X = clamp(p->MotoSpeed, -15., 120.) * (1. / 40.); +} + +//--------------------------------------------------------------------------- +// +// +// +//--------------------------------------------------------------------------- + static void onMotorcycle(DDukePlayer* const p, ESyncBits &actions) { auto pact = p->GetActor(); @@ -1032,7 +1043,7 @@ static void onMotorcycle(DDukePlayer* const p, ESyncBits &actions) } p->moto_on_mud = p->moto_on_oil = 0; - p->cmd.ucmd.vel.X = clamp((float)p->MotoSpeed, -15.f, 120.f) * (1.f / 40.f); + setVehicleInputVel(p); } //--------------------------------------------------------------------------- @@ -1101,7 +1112,7 @@ static void onBoat(DDukePlayer* const p, ESyncBits &actions) if (p->NotOnWater && p->MotoSpeed > 50) p->MotoSpeed *= 0.5; - p->cmd.ucmd.vel.X = clamp((float)p->MotoSpeed, -15.f, 120.f) * (1.f / 40.f); + setVehicleInputVel(p); } //--------------------------------------------------------------------------- @@ -2278,7 +2289,7 @@ void processinput_r(DDukePlayer* const p) onBoat(p, actions); } - processinputvel(p); + rotateInputVel(p); if (psectp == nullptr) {