501 pY:= Point.y; |
501 pY:= Point.y; |
502 if (Flags and afTrackFall <> 0) and (dmg < abs(Score)) then |
502 if (Flags and afTrackFall <> 0) and (dmg < abs(Score)) then |
503 begin |
503 begin |
504 dX:= 0.005 * dmg + 0.01 * Density; |
504 dX:= 0.005 * dmg + 0.01 * Density; |
505 dY:= dX; |
505 dY:= dX; |
|
506 if (Kind = gtExplosives) and |
|
507 (((abs(dY) > 0.15) and (abs(dX) < 0.02)) or |
|
508 ((abs(dY) < 0.15) and (abs(dX) < 0.15))) then |
|
509 dX:= 0; |
506 if (x and LAND_WIDTH_MASK = 0) and ((y+cHHRadius+2) and LAND_HEIGHT_MASK = 0) and |
510 if (x and LAND_WIDTH_MASK = 0) and ((y+cHHRadius+2) and LAND_HEIGHT_MASK = 0) and |
507 (Land[y+cHHRadius+2, x] and lfIndestructible <> 0) then |
511 (Land[y+cHHRadius+2, x] and lfIndestructible <> 0) then |
508 fallDmg:= trunc(TraceFall(x, y, pX, pY, dX, dY, 0, Kind) * dmgMod) |
512 fallDmg:= trunc(TraceFall(x, y, pX, pY, dX, dY, 0, Kind) * dmgMod) |
509 else fallDmg:= trunc(TraceFall(x, y, pX, pY, dX, dY, erasure, Kind) * dmgMod) |
513 else fallDmg:= trunc(TraceFall(x, y, pX, pY, dX, dY, erasure, Kind) * dmgMod) |
510 end; |
514 end; |