6447 DeleteGear(Gear); |
6447 DeleteGear(Gear); |
6448 AfterAttack; |
6448 AfterAttack; |
6449 exit |
6449 exit |
6450 end; |
6450 end; |
6451 updateFuel(Gear); |
6451 updateFuel(Gear); |
6452 if WorldWrap(Gear) and (WorldEdge = weWrap) and (Gear^.Target.X = NoPointX) then |
6452 if (WorldEdge <> weBounce) then |
6453 // Use FlightTime to count number of times the gear has world-wrapped |
6453 if WorldWrap(Gear) and (WorldEdge = weWrap) and (Gear^.Target.X = NoPointX) then |
6454 inc(Gear^.FlightTime); |
6454 // Use FlightTime to count number of times the gear has world-wrapped |
|
6455 inc(Gear^.FlightTime); |
6455 |
6456 |
6456 with Gear^ do |
6457 with Gear^ do |
6457 begin |
6458 begin |
6458 HedgehogChAngle(HHGear); |
6459 HedgehogChAngle(HHGear); |
6459 ndX:= SignAs(AngleSin(HHGear^.Angle), HHGear^.dX) * _4; |
6460 ndX:= SignAs(AngleSin(HHGear^.Angle), HHGear^.dX) * _4; |
6460 ndY:= -AngleCos(HHGear^.Angle) * _4; |
6461 ndY:= -AngleCos(HHGear^.Angle) * _4; |
6461 if (ndX <> dX) or (ndY <> dY) or (Gear^.Message and (gmUp or gmDown) <> 0) or |
6462 if (ndX <> dX) or (ndY <> dY) or (Gear^.Message and (gmUp or gmDown) <> 0) or |
6462 (((Target.X <> NoPointX) and (Target.X and LAND_WIDTH_MASK = 0) and |
6463 (((Target.X <> NoPointX) and (Target.X and LAND_WIDTH_MASK = 0) and |
6463 (Target.Y and LAND_HEIGHT_MASK = 0) and ((Land[Target.Y, Target.X] = 0)) and |
6464 (Target.Y and LAND_HEIGHT_MASK = 0) and ((Land[Target.Y, Target.X] = 0)) and |
6464 (not CheckCoordInWater(Target.X, Target.Y))) and (CheckGearNear(gtAirMine, int2hwFloat(Target.X),int2hwFloat(Target.Y), Gear^.Radius*3, Gear^.Radius*3) = nil)) then |
6465 (not CheckCoordInWater(Target.X, Target.Y))) and (CheckGearNear(gtAirMine, int2hwFloat(Target.X),int2hwFloat(Target.Y), Gear^.Radius*3, Gear^.Radius*3) = nil) and |
|
6466 (not ((WorldEdge = weBounce) and ((Target.X > rightX) or (Target.X < leftX))))) then |
6465 begin |
6467 begin |
6466 updateTarget(Gear, ndX, ndY); |
6468 updateTarget(Gear, ndX, ndY); |
6467 Timer := iceWaitCollision; |
6469 Timer := iceWaitCollision; |
6468 FlightTime := 0; |
6470 FlightTime := 0; |
6469 end |
6471 end |