equal
deleted
inserted
replaced
1299 end; |
1299 end; |
1300 |
1300 |
1301 procedure LineShoveHelp(Gear: PGear; oX, oY, tX, tY, dX, dY: hwFloat; count: LongWord); |
1301 procedure LineShoveHelp(Gear: PGear; oX, oY, tX, tY, dX, dY: hwFloat; count: LongWord); |
1302 var dmg,power: LongInt; |
1302 var dmg,power: LongInt; |
1303 begin |
1303 begin |
1304 if ((Gear^.Kind = gtMinigunBullet) or (Gear^.Damage > 0)) |
1304 if hwSqr(tX - oX) + hwSqr(tY - oY) > _0_25 then |
1305 and (hwSqr(tX - oX) + hwSqr(tY - oY) > _0_25) then |
|
1306 begin |
1305 begin |
1307 if (Gear^.AmmoType = amDEagle) or (Gear^.AmmoType = amMinigun) then |
1306 if (Gear^.AmmoType = amDEagle) or (Gear^.AmmoType = amMinigun) then |
1308 dmg:= Gear^.Boom |
1307 dmg:= Gear^.Boom |
1309 else |
1308 else |
1310 dmg:= Gear^.Timer * Gear^.Boom div 100000; |
1309 dmg:= Gear^.Timer * Gear^.Boom div 100000; |
1484 // remember who fired this |
1483 // remember who fired this |
1485 if (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Gear <> nil) then |
1484 if (Gear^.Hedgehog <> nil) and (Gear^.Hedgehog^.Gear <> nil) then |
1486 Gear^.Data:= Pointer(Gear^.Hedgehog^.Gear); |
1485 Gear^.Data:= Pointer(Gear^.Hedgehog^.Gear); |
1487 |
1486 |
1488 PlaySound(sndGun); |
1487 PlaySound(sndGun); |
|
1488 ClearHitOrder(); |
1489 // add 2 initial steps to avoid problem with ammoshove related to calculation of radius + 1 radius as gear widths, and also just plain old weird angles |
1489 // add 2 initial steps to avoid problem with ammoshove related to calculation of radius + 1 radius as gear widths, and also just plain old weird angles |
1490 Gear^.X := Gear^.X + Gear^.dX * 2; |
1490 Gear^.X := Gear^.X + Gear^.dX * 2; |
1491 Gear^.Y := Gear^.Y + Gear^.dY * 2; |
1491 Gear^.Y := Gear^.Y + Gear^.dY * 2; |
1492 Gear^.FlightTime := 0; |
1492 Gear^.FlightTime := 0; |
1493 Gear^.doStep := @doStepBulletWork |
1493 Gear^.doStep := @doStepBulletWork |
1526 CreateShellForGear(Gear, 1); |
1526 CreateShellForGear(Gear, 1); |
1527 Gear^.State := Gear^.State or gstAnimation; |
1527 Gear^.State := Gear^.State or gstAnimation; |
1528 Gear^.dX := SignAs(AngleSin(HHGear^.Angle), HHGear^.dX) * _0_5; |
1528 Gear^.dX := SignAs(AngleSin(HHGear^.Angle), HHGear^.dX) * _0_5; |
1529 Gear^.dY := -AngleCos(HHGear^.Angle) * _0_5; |
1529 Gear^.dY := -AngleCos(HHGear^.Angle) * _0_5; |
1530 PlaySound(sndGun); |
1530 PlaySound(sndGun); |
|
1531 ClearHitOrder(); |
1531 // add 2 initial steps to avoid problem with ammoshove related to calculation of radius + 1 radius as gear widths, and also just weird angles |
1532 // add 2 initial steps to avoid problem with ammoshove related to calculation of radius + 1 radius as gear widths, and also just weird angles |
1532 Gear^.X := Gear^.X + Gear^.dX * 2; |
1533 Gear^.X := Gear^.X + Gear^.dX * 2; |
1533 Gear^.Y := Gear^.Y + Gear^.dY * 2; |
1534 Gear^.Y := Gear^.Y + Gear^.dY * 2; |
1534 Gear^.FlightTime := 0; |
1535 Gear^.FlightTime := 0; |
1535 Gear^.doStep := @doStepBulletWork; |
1536 Gear^.doStep := @doStepBulletWork; |