diff -r e121d0d6823b -r ec36f3d53f3c hedgewars/VGSHandlers.inc --- a/hedgewars/VGSHandlers.inc Thu Jun 30 14:28:13 2011 +0400 +++ b/hedgewars/VGSHandlers.inc Thu Jun 30 15:09:10 2011 +0400 @@ -607,6 +607,9 @@ (* FIXME - This block desyncs due to the way WorldDx is important for various things network related. One possible solution is, instead of using WorldDx, to use straight gl/SDL calls to jitter the screen a bit. + +// a comment by unC0Rr: instead of changing WorldDx shake cursor coordinates, that should be safe + if (Gear^.Timer and 5) = 0 then begin maxMovement := max(1, 13 - ((Gear^.Timer * 15) div 250)); @@ -688,3 +691,20 @@ end end end; + +//////////////////////////////////////////////////////////////////////////////// +procedure doStepSmoothWindBar(Gear: PVisualGear; Steps: Longword); +begin + inc(Gear^.Timer, Steps); + + while Gear^.Timer >= 10 do + begin + dec(Gear^.Timer, 10); + if WindBarWidth < Gear^.Tag then inc(WindBarWidth) + else if WindBarWidth > Gear^.Tag then dec(WindBarWidth); + end; + +if WindBarWidth = Gear^.Tag then + DeleteVisualGear(Gear) +end; +