hedgewars/uGearsUtils.pas
changeset 13901 98eaf1fe1f6b
parent 13900 b6248c4c2f23
child 13999 a24c4a051960
equal deleted inserted replaced
13900:b6248c4c2f23 13901:98eaf1fe1f6b
  1054     end
  1054     end
  1055 end;
  1055 end;
  1056 
  1056 
  1057 function CheckGearNearImpl(Kind: TGearType; X, Y: hwFloat; rX, rY: LongInt; exclude: PGear): PGear;
  1057 function CheckGearNearImpl(Kind: TGearType; X, Y: hwFloat; rX, rY: LongInt; exclude: PGear): PGear;
  1058 var t: PGear;
  1058 var t: PGear;
  1059     width, dX, dY: hwFloat;
  1059     width, bound, dX, dY: hwFloat;
  1060     bound: LongInt;
       
  1061     isHit: Boolean;
  1060     isHit: Boolean;
  1062 begin
  1061 begin
  1063     t:= GearsList;
  1062     t:= GearsList;
  1064     bound:= _1_5 * int2hwFloat(max(rX, rY));
  1063     bound:= _1_5 * int2hwFloat(max(rX, rY));
  1065     rX:= sqr(rX);
  1064     rX:= sqr(rX);
  1085                     isHit := true
  1084                     isHit := true
  1086             end;
  1085             end;
  1087 
  1086 
  1088             if isHit then
  1087             if isHit then
  1089             begin
  1088             begin
  1090                 CheckGearNear:= t;
  1089                 CheckGearNearImpl:= t;
  1091                 exit;
  1090                 exit;
  1092             end;
  1091             end;
  1093         end;
  1092         end;
  1094         t:= t^.NextGear
  1093         t:= t^.NextGear
  1095     end;
  1094     end;
  1096 
  1095 
  1097     CheckGearNear:= nil
  1096     CheckGearNearImpl:= nil
  1098 end;
  1097 end;
  1099 
  1098 
  1100 function CheckGearNear(Kind: TGearType; X, Y: hwFloat; rX, rY: LongInt): PGear;
  1099 function CheckGearNear(Kind: TGearType; X, Y: hwFloat; rX, rY: LongInt): PGear;
  1101 begin
  1100 begin
  1102     CheckGearNear := CheckGearNearImpl(Kind, X, Y, rX, rY, nil);
  1101     CheckGearNear := CheckGearNearImpl(Kind, X, Y, rX, rY, nil);