1238 doStepParachuteWork(Gear) |
1238 doStepParachuteWork(Gear) |
1239 end; |
1239 end; |
1240 |
1240 |
1241 //////////////////////////////////////////////////////////////////////////////// |
1241 //////////////////////////////////////////////////////////////////////////////// |
1242 procedure doStepAirAttackWork(Gear: PGear); |
1242 procedure doStepAirAttackWork(Gear: PGear); |
|
1243 var i: Longint; |
1243 begin |
1244 begin |
1244 AllInactive:= false; |
1245 AllInactive:= false; |
1245 Gear^.X:= Gear^.X + cAirPlaneSpeed * Gear^.Tag; |
1246 Gear^.X:= Gear^.X + cAirPlaneSpeed * Gear^.Tag; |
1246 |
1247 |
1247 if (Gear^.Health > 0)and(not (Gear^.X < Gear^.dX))and(Gear^.X < Gear^.dX + cAirPlaneSpeed) then |
1248 if (Gear^.Health > 0)and(not (Gear^.X < Gear^.dX))and(Gear^.X < Gear^.dX + cAirPlaneSpeed) then |
1248 begin |
1249 begin |
1249 dec(Gear^.Health); |
1250 dec(Gear^.Health); |
1250 case Gear^.State of |
1251 case Gear^.State of |
1251 0: FollowGear:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtAirBomb, 0, cBombsSpeed * Gear^.Tag, _0, 0); |
1252 0: FollowGear:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtAirBomb, 0, cBombsSpeed * Gear^.Tag, _0, 0); |
1252 1: FollowGear:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtMine, 0, cBombsSpeed * Gear^.Tag, _0, 0); |
1253 1: FollowGear:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtMine, 0, cBombsSpeed * Gear^.Tag, _0, 0); |
|
1254 2: for i:= -17 to 17 do |
|
1255 FollowGear:= AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtFlame, 0, _0_01 * i, _0, 0); |
1253 end; |
1256 end; |
1254 Gear^.dX:= Gear^.dX + int2hwFloat(30 * Gear^.Tag) |
1257 Gear^.dX:= Gear^.dX + int2hwFloat(30 * Gear^.Tag) |
1255 end; |
1258 end; |
1256 |
1259 |
1257 if (GameTicks and $3F) = 0 then |
1260 if (GameTicks and $3F) = 0 then |
1262 |
1265 |
1263 procedure doStepAirAttack(Gear: PGear); |
1266 procedure doStepAirAttack(Gear: PGear); |
1264 begin |
1267 begin |
1265 AllInactive:= false; |
1268 AllInactive:= false; |
1266 |
1269 |
1267 if Gear^.X.QWordValue = 0 then Gear^.Tag:= 1 |
1270 if Gear^.X.QWordValue = 0 then |
1268 else Gear^.Tag:= -1; |
1271 Gear^.Tag:= 1 |
|
1272 else |
|
1273 Gear^.Tag:= -1; |
|
1274 |
1269 Gear^.X:= _1024 - _2048 * Gear^.Tag; |
1275 Gear^.X:= _1024 - _2048 * Gear^.Tag; |
1270 Gear^.Y:= -_300; |
1276 Gear^.Y:= -_300; |
1271 Gear^.dX:= int2hwFloat(TargetPoint.X - 5 * Gear^.Tag * 15); |
1277 Gear^.dX:= int2hwFloat(TargetPoint.X - 5 * Gear^.Tag * 15); |
1272 |
1278 |
1273 if int2hwFloat(TargetPoint.Y) - Gear^.Y > _0 then |
1279 if int2hwFloat(TargetPoint.Y) - Gear^.Y > _0 then |