# HG changeset patch # User nemo # Date 1331482744 14400 # Node ID 31ba56a8ec433bb32eb027cb28460147904a0189 # Parent 8fcd2508c49f9d825745ace9fd4d694e3211e9de Minor optimisation for AI to cut down on hwSqrt calls diff -r 8fcd2508c49f -r 31ba56a8ec43 hedgewars/uAIMisc.pas --- a/hedgewars/uAIMisc.pas Sun Mar 11 11:39:45 2012 -0400 +++ b/hedgewars/uAIMisc.pas Sun Mar 11 12:19:04 2012 -0400 @@ -235,7 +235,7 @@ end; function RateExplosion(Me: PGear; x, y, r: LongInt): LongInt; -var i, dmg, rate: LongInt; +var i, dmg, dmgBase, rate: LongInt; begin rate:= 0; // add our virtual position @@ -246,10 +246,13 @@ Score:= - ThinkingHH^.Health end; // rate explosion +dmgBase:= r + cHHRadius div 2; for i:= 0 to Targets.Count do with Targets.ar[i] do begin - dmg:= hwRound(_0_01 * cDamageModifier * min((r + cHHRadius div 2 - LongInt(DistanceI(Point.x - x, Point.y - y).Round)) div 2, r) * cDamagePercent); + dmg:= 0; + if abs(Point.x - x) + abs(Point.y - y) < dmgBase then + dmg:= hwRound(_0_01 * cDamageModifier * min((dmgBase - LongInt(DistanceI(Point.x - x, Point.y - y).Round)) div 2, r) * cDamagePercent); if dmg > 0 then begin