hedgewars/uGearsHandlersMess.pas
changeset 14567 5de4d470dafe
parent 14566 85921db6f7c3
child 14568 e26fa5ea2bf6
equal deleted inserted replaced
14566:85921db6f7c3 14567:5de4d470dafe
  3045 end;
  3045 end;
  3046 
  3046 
  3047 procedure doStepAirAttack(Gear: PGear);
  3047 procedure doStepAirAttack(Gear: PGear);
  3048 var valid: boolean;
  3048 var valid: boolean;
  3049     HHGear: PGear;
  3049     HHGear: PGear;
  3050     planeY: LongInt;
       
  3051 begin
  3050 begin
  3052     AllInactive := false;
  3051     AllInactive := false;
  3053 
  3052 
  3054     planeY:= topY - 300;
       
  3055     valid:= true;
  3053     valid:= true;
  3056     if (WorldEdge = weBounce) then
  3054     if (WorldEdge = weBounce) then
  3057         if (Gear^.X.QWordValue = 0) and (Gear^.Target.X > rightX) then
  3055         if (Gear^.X.QWordValue = 0) and (Gear^.Target.X > rightX) then
  3058             valid:= false
  3056             valid:= false
  3059         else if (Gear^.X.QWordValue <> 0) and (Gear^.Target.X < leftX) then
  3057         else if (Gear^.X.QWordValue <> 0) and (Gear^.Target.X < leftX) then
  3060             valid:= false
  3058             valid:= false
  3061         else if (Gear^.Target.Y < planeY) then
  3059         else if (Gear^.Target.Y < (topY - 50)) then
  3062             valid:= false;
  3060             valid:= false;
  3063 
  3061 
  3064     if (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Gear <> nil) then
  3062     if (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Gear <> nil) then
  3065         HHGear:= Gear^.Hedgehog^.Gear;
  3063         HHGear:= Gear^.Hedgehog^.Gear;
  3066 
  3064 
  3090         begin
  3088         begin
  3091         Gear^.Tag := -1;
  3089         Gear^.Tag := -1;
  3092         Gear^.X := int2hwFloat(max(LAND_WIDTH,4096) + 2048);
  3090         Gear^.X := int2hwFloat(max(LAND_WIDTH,4096) + 2048);
  3093         end;
  3091         end;
  3094 
  3092 
  3095     Gear^.Y := int2hwFloat(planeY);
  3093     Gear^.Y := int2hwFloat(topY - 300);
  3096     Gear^.dX := int2hwFloat(Gear^.Target.X) - int2hwFloat(Gear^.Tag * (Gear^.Health-1) * Gear^.Damage) / 2;
  3094     Gear^.dX := int2hwFloat(Gear^.Target.X) - int2hwFloat(Gear^.Tag * (Gear^.Health-1) * Gear^.Damage) / 2;
  3097 
  3095 
  3098     // calcs for Napalm Strike, so that it will hit the target (without wind at least :P)
  3096     // calcs for Napalm Strike, so that it will hit the target (without wind at least :P)
  3099     if (Gear^.State = 2) then
  3097     if (Gear^.State = 2) then
  3100         Gear^.dX := Gear^.dX - cBombsSpeed * Gear^.Tag * 900
  3098         Gear^.dX := Gear^.dX - cBombsSpeed * Gear^.Tag * 900