hedgewars/uGearsUtils.pas
changeset 11482 e425a6eb9da3
parent 11477 c55b3e09a04e
child 11483 8c95d5a4366c
equal deleted inserted replaced
11481:c4e1d39acc56 11482:e425a6eb9da3
   925         Gear^.X:= int2hwFloat(x);
   925         Gear^.X:= int2hwFloat(x);
   926         Gear^.Y:= int2hwFloat(y);
   926         Gear^.Y:= int2hwFloat(y);
   927         AddFileLog('Assigned Gear coordinates (' + inttostr(x) + ',' + inttostr(y) + ')');
   927         AddFileLog('Assigned Gear coordinates (' + inttostr(x) + ',' + inttostr(y) + ')');
   928         end
   928         end
   929     end
   929     end
   930     else
   930 else
   931     begin
   931     begin
   932     OutError('Can''t find place for Gear', false);
   932     OutError('Can''t find place for Gear', false);
   933     if Gear^.Kind = gtHedgehog then
   933     if Gear^.Kind = gtHedgehog then
   934         Gear^.Hedgehog^.Effects[heResurrectable] := 0;
   934         begin
   935     DeleteGear(Gear);
   935         cnt:= 0;
   936     Gear:= nil
   936         if GameTicks = 0 then
       
   937             begin
       
   938             //AddFileLog('Trying to make a hole');
       
   939             while (cnt < 1000) do
       
   940                 begin
       
   941                 inc(cnt);
       
   942                 x:= leftX+GetRandom(rightX-leftX-16)+8;
       
   943                 y:= topY+GetRandom(LAND_HEIGHT-topY-16)+8;
       
   944                 if NoGearsToAvoid(x, y, 100, 100) then
       
   945                     begin
       
   946                     Gear^.State:= Gear^.State or gsttmpFlag;
       
   947                     Gear^.X:= int2hwFloat(x);
       
   948                     Gear^.Y:= int2hwFloat(y);
       
   949                     AddFileLog('Picked a spot for hog at coordinates (' + inttostr(hwRound(Gear^.X)) + ',' + inttostr(hwRound(Gear^.Y)) + ')');
       
   950                     cnt:= 2000
       
   951                     end
       
   952                 end;
       
   953             end;
       
   954         if cnt < 2000 then
       
   955             begin
       
   956             Gear^.Hedgehog^.Effects[heResurrectable] := 0;
       
   957             DeleteGear(Gear);
       
   958             Gear:= nil
       
   959             end
       
   960         end
       
   961     else
       
   962         begin
       
   963         DeleteGear(Gear);
       
   964         Gear:= nil
       
   965         end
   937     end
   966     end
   938 end;
   967 end;
   939 
   968 
   940 function CheckGearNear(Gear: PGear; Kind: TGearType; rX, rY: LongInt): PGear;
   969 function CheckGearNear(Gear: PGear; Kind: TGearType; rX, rY: LongInt): PGear;
   941 var t: PGear;
   970 var t: PGear;