mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 01:23:51 +00:00
Add mount pitch and roll for realistic taxi flight animation
Flying mounts now tilt and bank realistically during taxi flights: - Pitch (up/down): calculated from spline tangent's z-component (altitude change) - Roll (banking): proportional to turn rate, clamped to ~40 degrees - Yaw: existing horizontal orientation from spline direction Implementation: - Added mountPitch_ and mountRoll_ to Renderer (radians) - Updated TaxiOrientationCallback to pass yaw, pitch, roll - Calculate pitch using asin(tangent.z) for altitude tilt - Calculate roll from yaw change rate: -orientDiff * 2.5, clamped to ±0.7 rad - Applied to mount rotation: glm::vec3(pitch, roll, yaw) This fixes the "weirdness" where mounts flew sideways or without natural banking.
This commit is contained in:
parent
2e0a7e0039
commit
92031102e4
5 changed files with 34 additions and 12 deletions
|
|
@ -129,6 +129,7 @@ public:
|
|||
// Mount rendering
|
||||
void setMounted(uint32_t mountInstId, float heightOffset);
|
||||
void setTaxiFlight(bool onTaxi) { taxiFlight_ = onTaxi; }
|
||||
void setMountPitchRoll(float pitch, float roll) { mountPitch_ = pitch; mountRoll_ = roll; }
|
||||
void clearMount();
|
||||
bool isMounted() const { return mountInstanceId_ != 0; }
|
||||
|
||||
|
|
@ -274,6 +275,8 @@ private:
|
|||
// Mount state
|
||||
uint32_t mountInstanceId_ = 0;
|
||||
float mountHeightOffset_ = 0.0f;
|
||||
float mountPitch_ = 0.0f; // Up/down tilt (radians)
|
||||
float mountRoll_ = 0.0f; // Left/right banking (radians)
|
||||
bool taxiFlight_ = false;
|
||||
|
||||
bool terrainEnabled = true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue