hedgewars/uGears.pas
changeset 955 474afaab0365
parent 954 0cc31e998f4e
child 956 19003f7fc174
equal deleted inserted replaced
954:0cc31e998f4e 955:474afaab0365
   902 uAIMisc.AwareOfExplosion(0, 0, 0)
   902 uAIMisc.AwareOfExplosion(0, 0, 0)
   903 end;
   903 end;
   904 
   904 
   905 procedure ShotgunShot(Gear: PGear);
   905 procedure ShotgunShot(Gear: PGear);
   906 var t: PGear;
   906 var t: PGear;
   907     dmg: integer;
   907     dmg: LongInt;
   908 begin
   908 begin
   909 Gear^.Radius:= cShotgunRadius;
   909 Gear^.Radius:= cShotgunRadius;
   910 t:= GearsList;
   910 t:= GearsList;
   911 while t <> nil do
   911 while t <> nil do
   912     begin
   912     begin
   970     end;
   970     end;
   971 SetAllToActive
   971 SetAllToActive
   972 end;
   972 end;
   973 
   973 
   974 procedure AssignHHCoords;
   974 procedure AssignHHCoords;
   975 var i, t, p: LongInt;
   975 var i, t, p, j: LongInt;
   976     ar: array[0..Pred(cMaxHHs)] of PGear;
   976     ar: array[0..Pred(cMaxHHs)] of PGear;
   977     Count: Longword;
   977     Count: Longword;
   978 begin
   978 begin
   979 if (GameFlags and gfForts) <> 0 then
   979 if (GameFlags and gfForts) <> 0 then
   980    begin
   980 	begin
   981    t:= 0;
   981 	t:= 0;
   982    for p:= 0 to Pred(TeamsCount) do
   982 	for p:= 0 to 1 do
   983      with TeamsArray[p]^ do
   983 		begin
   984       begin
   984 		with ClansArray[p]^ do
   985       for i:= 0 to cMaxHHIndex do
   985 			for j:= 0 to Pred(TeamsNumber) do
   986           with Hedgehogs[i] do
   986 				with Teams[j]^ do
   987                if (Gear <> nil) and (Gear^.X.QWordValue = 0) then FindPlace(Gear, false, t, t + 1024);
   987 					for i:= 0 to cMaxHHIndex do
   988       inc(t, 1024);
   988 						with Hedgehogs[i] do
   989       end
   989 							if (Gear <> nil) and (Gear^.X.QWordValue = 0) then FindPlace(Gear, false, t, t + 1024);
   990    end else // mix hedgehogs
   990 		inc(t, 1024)
   991    begin
   991 		end
   992    Count:= 0;
   992 	end else // mix hedgehogs
   993    for p:= 0 to Pred(TeamsCount) do
   993 	begin
   994      with TeamsArray[p]^ do
   994 	Count:= 0;
   995       begin
   995 	for p:= 0 to Pred(TeamsCount) do
   996       for i:= 0 to cMaxHHIndex do
   996 		with TeamsArray[p]^ do
   997           with Hedgehogs[i] do
   997 		begin
   998                if (Gear <> nil) and (Gear^.X.QWordValue = 0) then
   998 		for i:= 0 to cMaxHHIndex do
   999                   begin
   999 			with Hedgehogs[i] do
  1000                   ar[Count]:= Gear;
  1000 				if (Gear <> nil) and (Gear^.X.QWordValue = 0) then
  1001                   inc(Count)
  1001 					begin
  1002                   end;
  1002 					ar[Count]:= Gear;
  1003       end;
  1003 					inc(Count)
  1004 
  1004 					end;
  1005    while (Count > 0) do
  1005 		end;
  1006       begin
  1006 
  1007       i:= GetRandom(Count);
  1007 	while (Count > 0) do
  1008       FindPlace(ar[i], false, 0, 2048);
  1008 		begin
  1009       ar[i]:= ar[Count - 1];
  1009 		i:= GetRandom(Count);
  1010       dec(Count)
  1010 		FindPlace(ar[i], false, 0, 2048);
  1011       end
  1011 		ar[i]:= ar[Count - 1];
  1012    end
  1012 		dec(Count)
       
  1013 		end
       
  1014 	end
  1013 end;
  1015 end;
  1014 
  1016 
  1015 function CheckGearNear(Gear: PGear; Kind: TGearType; rX, rY: LongInt): PGear;
  1017 function CheckGearNear(Gear: PGear; Kind: TGearType; rX, rY: LongInt): PGear;
  1016 var t: PGear;
  1018 var t: PGear;
  1017 begin
  1019 begin