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; |