equal
deleted
inserted
replaced
1320 dec(Gear^.Health, Gear^.Damage); |
1320 dec(Gear^.Health, Gear^.Damage); |
1321 Gear^.Damage := 0 |
1321 Gear^.Damage := 0 |
1322 end; |
1322 end; |
1323 end; |
1323 end; |
1324 |
1324 |
|
1325 procedure CheckBulletDrowningHelp(Bullet: PGear); |
|
1326 var dX, dY: hwFloat; |
|
1327 begin |
|
1328 dX := Bullet^.dX; |
|
1329 dY := Bullet^.dY; |
|
1330 CheckGearDrowning(Bullet); |
|
1331 if (dX <> Bullet^.dX) or (dY <> Bullet^.dY) then |
|
1332 begin |
|
1333 SpawnBulletTrail(Bullet, Bullet^.X, Bullet^.Y, Bullet^.FlightTime = 0); |
|
1334 Bullet^.Elasticity := Bullet^.X; |
|
1335 Bullet^.Friction := Bullet^.Y; |
|
1336 Inc(Bullet^.PortalCounter); |
|
1337 Bullet^.FlightTime:= 1; |
|
1338 end; |
|
1339 end; |
|
1340 |
1325 procedure doStepBulletWork(Gear: PGear); |
1341 procedure doStepBulletWork(Gear: PGear); |
1326 var |
1342 var |
1327 i, x, y, iInit: LongWord; |
1343 i, x, y, iInit: LongWord; |
1328 oX, oY, tX, tY, tDx, tDy: hwFloat; |
1344 oX, oY, tX, tY, tDx, tDy: hwFloat; |
1329 VGear: PVisualGear; |
1345 VGear: PVisualGear; |
1376 begin |
1392 begin |
1377 Gear^.Tag := 1; |
1393 Gear^.Tag := 1; |
1378 dec(Gear^.Damage); |
1394 dec(Gear^.Damage); |
1379 Gear^.X := Gear^.X - Gear^.dX; |
1395 Gear^.X := Gear^.X - Gear^.dX; |
1380 Gear^.Y := Gear^.Y - Gear^.dY; |
1396 Gear^.Y := Gear^.Y - Gear^.dY; |
1381 CheckGearDrowning(Gear); |
1397 CheckBulletDrowningHelp(Gear); |
1382 break; |
1398 break; |
1383 end |
1399 end |
1384 else if (not isDigging) then |
1400 else if (not isDigging) then |
1385 Gear^.Tag := 0; |
1401 Gear^.Tag := 0; |
1386 |
1402 |
1393 iInit:= i; |
1409 iInit:= i; |
1394 oX:= Gear^.X; |
1410 oX:= Gear^.X; |
1395 oY:= Gear^.Y; |
1411 oY:= Gear^.Y; |
1396 end; |
1412 end; |
1397 |
1413 |
1398 CheckGearDrowning(Gear); |
1414 CheckBulletDrowningHelp(Gear); |
1399 case Gear^.Kind of |
1415 case Gear^.Kind of |
1400 gtMinigunBullet: isDead:= isDigging or ((Gear^.State and gstDrowning) <> 0); |
1416 gtMinigunBullet: isDead:= isDigging or ((Gear^.State and gstDrowning) <> 0); |
1401 gtDEagleShot, gtSniperRifleShot: isDead:= (Gear^.Damage >= Gear^.Health) or ((Gear^.State and gstDrowning) <> 0) |
1417 gtDEagleShot, gtSniperRifleShot: isDead:= (Gear^.Damage >= Gear^.Health) or ((Gear^.State and gstDrowning) <> 0) |
1402 end; |
1418 end; |
1403 dec(i) |
1419 dec(i) |