hedgewars/GSHandlers.inc
changeset 1124 1636a3c7c061
parent 1123 ed713652afae
child 1132 b4c0698fbb6b
equal deleted inserted replaced
1123:ed713652afae 1124:1636a3c7c061
  1174 ////////////////////////////////////////////////////////////////////////////////
  1174 ////////////////////////////////////////////////////////////////////////////////
  1175 procedure doStepAirAttackWork(Gear: PGear);
  1175 procedure doStepAirAttackWork(Gear: PGear);
  1176 begin
  1176 begin
  1177 AllInactive:= false;
  1177 AllInactive:= false;
  1178 Gear^.X:= Gear^.X + cAirPlaneSpeed * Gear^.Tag;
  1178 Gear^.X:= Gear^.X + cAirPlaneSpeed * Gear^.Tag;
       
  1179 
  1179 if (Gear^.Health > 0)and(not (Gear^.X < Gear^.dX))and(Gear^.X < Gear^.dX + cAirPlaneSpeed) then
  1180 if (Gear^.Health > 0)and(not (Gear^.X < Gear^.dX))and(Gear^.X < Gear^.dX + cAirPlaneSpeed) then
  1180    begin
  1181 	begin
  1181    dec(Gear^.Health);
  1182 	dec(Gear^.Health);
  1182    case Gear^.State of
  1183 	case Gear^.State of
  1183         0: FollowGear:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtAirBomb, 0, cBombsSpeed * Gear^.Tag, _0, 0);
  1184 			0: FollowGear:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtAirBomb, 0, cBombsSpeed * Gear^.Tag, _0, 0);
  1184         1: FollowGear:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtMine,    0, cBombsSpeed * Gear^.Tag, _0, 0);
  1185 			1: FollowGear:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtMine,    0, cBombsSpeed * Gear^.Tag, _0, 0);
  1185         end;
  1186 			end;
  1186    Gear^.dX:= Gear^.dX + int2hwFloat(30 * Gear^.Tag)
  1187 	Gear^.dX:= Gear^.dX + int2hwFloat(30 * Gear^.Tag)
  1187    end;
  1188 	end;
       
  1189 
       
  1190 if (GameTicks and $3F) = 0 then
       
  1191 	AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtSmokeTrace, 0, _0, _0, 0);
       
  1192 
  1188 if (hwRound(Gear^.X) > 3072) or (hwRound(Gear^.X) < -1024) then DeleteGear(Gear)
  1193 if (hwRound(Gear^.X) > 3072) or (hwRound(Gear^.X) < -1024) then DeleteGear(Gear)
  1189 end;
  1194 end;
  1190 
  1195 
  1191 procedure doStepAirAttack(Gear: PGear);
  1196 procedure doStepAirAttack(Gear: PGear);
  1192 begin
  1197 begin
  1193 AllInactive:= false;
  1198 AllInactive:= false;
  1194 
  1199 
  1195 if Gear^.X.QWordValue = 0 then Gear^.Tag:=  1
  1200 if Gear^.X.QWordValue = 0 then Gear^.Tag:=  1
  1196                           else Gear^.Tag:= -1;
  1201                           else Gear^.Tag:= -1;
  1197 Gear^.X:= _1024 - _2048 * Gear^.Tag;
  1202 Gear^.X:= _1024 - _2048 * Gear^.Tag;
  1198 Gear^.Y:= -_128;
  1203 Gear^.Y:= -_300;
  1199 Gear^.dX:= int2hwFloat(TargetPoint.X - 5 * Gear^.Tag * 15);
  1204 Gear^.dX:= int2hwFloat(TargetPoint.X - 5 * Gear^.Tag * 15);
  1200 
  1205 
  1201 if int2hwFloat(TargetPoint.Y) - Gear^.Y > _0 then
  1206 if int2hwFloat(TargetPoint.Y) - Gear^.Y > _0 then
  1202    Gear^.dX:= Gear^.dX - cBombsSpeed * hwSqrt((int2hwFloat(TargetPoint.Y) - Gear^.Y) * 2 / cGravity) * Gear^.Tag;
  1207    Gear^.dX:= Gear^.dX - cBombsSpeed * hwSqrt((int2hwFloat(TargetPoint.Y) - Gear^.Y) * 2 / cGravity) * Gear^.Tag;
  1203 
  1208