# HG changeset patch # User nemo # Date 1366403439 14400 # Node ID 2dfe7c57667c603be6f16be1dff17f15245dbb21 # Parent e5db2a42e7e8644cc98e44164be0f72b2bbd337d# Parent b3874fa07e77ba45cf07830f0b01b3ffa289afeb merge diff -r b3874fa07e77 -r 2dfe7c57667c hedgewars/uFloat.pas --- a/hedgewars/uFloat.pas Fri Apr 19 22:20:49 2013 +0200 +++ b/hedgewars/uFloat.pas Fri Apr 19 16:30:39 2013 -0400 @@ -315,7 +315,6 @@ operator / (const z1: hwFloat; z2: hwFloat) z : hwFloat; inline; var t: QWord; begin -if z2.QWordValue = 0 then inc(z2.QWordValue); z.isNegative:= z1.isNegative xor z2.isNegative; z.Round:= z1.QWordValue div z2.QWordValue; t:= z1.QWordValue - z2.QWordValue * z.Round; @@ -328,7 +327,7 @@ t:= t shl 8; z2.QWordValue:= z2.QWordValue shl 8 end; - + if z2.Round > 0 then inc(z.QWordValue, t div z2.Round); end @@ -457,8 +456,16 @@ function Distance(const dx, dy: hwFloat): hwFloat; +var r: QWord; begin -Distance:= hwSqrt(hwSqr(dx) + hwSqr(dy)) +r:= dx.QWordValue or dy.QWordValue; + +if r < $10000 then + begin + Distance.QWordValue:= r; + Distance.isNegative:= false + end else + Distance:= hwSqrt(hwSqr(dx) + hwSqr(dy)) end; function DistanceI(const dx, dy: LongInt): hwFloat;