#pragma once #include "CoreMinimal.h" namespace Descent::World { /** * The Shear (DESIGN_UE.md section 2.11): the permanent current over the Throat's mouth that keeps everything * inside. Not a position clamp: nothing is stopped, everything is pushed down and back toward the canyon, harder * the higher it goes (10 m/s at Z +65, 25 m/s at Z +125). Added to the position integration of Tenders, swimmers * and loose ore by the systems that own them. */ struct THEDESCENT_API FDescentShear { /** Velocity in m/s at a point given in metres. Zero at and below Z = +25. */ static FVector VelocityAt(const FVector& Pm); /** True from Z = +10, 15 m before any push: the HUD shows SHEAR CURRENT - ASCENT NOT AUTHORISED. */ static bool IsWarning(const FVector& Pm); }; }