--- a/hedgewars/uGearsHandlersMess.pas Sun Jun 21 03:00:39 2020 +0300
+++ b/hedgewars/uGearsHandlersMess.pas Sun Jun 21 03:08:21 2020 +0300
@@ -535,8 +535,15 @@
if isFalling and (Gear^.State and gstNoGravity = 0) then
begin
+ // Apply gravity and wind
Gear^.dY := Gear^.dY + cGravity;
- if (GameFlags and gfMoreWind <> 0) and (TurnTimeLeft > 0) and
+ if ((GameFlags and gfMoreWind) <> 0) and
+ // Disable gfMoreWind for land objects on turn end to prevent bouncing them forever
+ // This solution is rather ugly, in that it will occassionally suddenly wind physics
+ // while a gear is moving, this can be rather confusing.
+ // TODO: Find a way to make gfMoreWind-affected land objects settle more reliably
+ // and quickler without touching wind itselvs
+ ((not (Gear^.Kind in [gtMine, gtAirMine, gtSMine, gtKnife, gtExplosives])) or (TimeNotInTurn < MaxMoreWindTime)) and
((xland or land) = 0) and
((Gear^.dX.QWordValue + Gear^.dY.QWordValue) > _0_02.QWordValue) then
Gear^.dX := Gear^.dX + cWindSpeed / Gear^.Density