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 |