diff -r ab212288d34d -r 4af291d5d79c hedgewars/uFloat.pas --- a/hedgewars/uFloat.pas Mon Oct 27 21:01:18 2008 +0000 +++ b/hedgewars/uFloat.pas Tue Oct 28 18:42:21 2008 +0000 @@ -99,6 +99,7 @@ _0_93: hwFloat = (isNegative: false; QWordValue: 3994319585); _0_96: hwFloat = (isNegative: false; QWordValue: 4123168604); _0_995: hwFloat = (isNegative: false; QWordValue: 4273492459); + _0_998: hwFloat = (isNegative: false; QWordValue: 4294967296); _0_999: hwFloat = (isNegative: false; QWordValue: 4290672328); _1_9: hwFloat = (isNegative: false; QWordValue: 8160437862); _0: hwFloat = (isNegative: false; QWordValue: 0); @@ -278,9 +279,11 @@ function hwSqr(const t: hwFloat): hwFloat; begin -hwSqr.isNegative:=false; -hwSqr.QWordValue:= QWord(t.Round) * t.Frac * 2 + ((QWord(t.Frac) * t.Frac) shr 32); -hwSqr.Round:= hwSqr.Round + t.Round * t.Round +hwSqr.isNegative:= false; +hwSqr.QWordValue:= + ((QWord(t.Round) * t.Round) shl 32) + + QWord(t.Round) * t.Frac * 2 + + ((QWord(t.Frac) * t.Frac) shr 32); end; function hwSqrt(const t: hwFloat): hwFloat;