1757 var Gear: PGear; |
1757 var Gear: PGear; |
1758 dmg, dmgRadius: LongInt; |
1758 dmg, dmgRadius: LongInt; |
1759 begin |
1759 begin |
1760 TargetPoint.X:= NoPointX; |
1760 TargetPoint.X:= NoPointX; |
1761 {$IFDEF DEBUGFILE}if Radius > 4 then AddFileLog('Explosion: at (' + inttostr(x) + ',' + inttostr(y) + ')');{$ENDIF} |
1761 {$IFDEF DEBUGFILE}if Radius > 4 then AddFileLog('Explosion: at (' + inttostr(x) + ',' + inttostr(y) + ')');{$ENDIF} |
|
1762 if Radius > 25 then KickFlakes(Radius, X, Y); |
|
1763 |
1762 if ((Mask and EXPLNoGfx) = 0) then |
1764 if ((Mask and EXPLNoGfx) = 0) then |
1763 begin |
1765 begin |
1764 if Radius > 50 then AddGear(X, Y, gtBigExplosion, 0, _0, _0, 0) |
1766 if Radius > 50 then AddGear(X, Y, gtBigExplosion, 0, _0, _0, 0) |
1765 else if Radius > 10 then AddGear(X, Y, gtExplosion, 0, _0, _0, 0); |
1767 else if Radius > 10 then AddGear(X, Y, gtExplosion, 0, _0, _0, 0); |
1766 end; |
1768 end; |
1768 |
1770 |
1769 if (Mask and EXPLAllDamageInRadius) = 0 then |
1771 if (Mask and EXPLAllDamageInRadius) = 0 then |
1770 dmgRadius:= Radius shl 1 |
1772 dmgRadius:= Radius shl 1 |
1771 else |
1773 else |
1772 dmgRadius:= Radius; |
1774 dmgRadius:= Radius; |
1773 |
|
1774 KickFlakes(dmgRadius, X, Y); |
|
1775 |
1775 |
1776 Gear:= GearsList; |
1776 Gear:= GearsList; |
1777 while Gear <> nil do |
1777 while Gear <> nil do |
1778 begin |
1778 begin |
1779 dmg:= dmgRadius + cHHRadius div 2 - hwRound(Distance(Gear^.X - int2hwFloat(X), Gear^.Y - int2hwFloat(Y))); |
1779 dmg:= dmgRadius + cHHRadius div 2 - hwRound(Distance(Gear^.X - int2hwFloat(X), Gear^.Y - int2hwFloat(Y))); |