hedgewars/uVisualGears.pas
changeset 2986 c0c91cd3f423
parent 2985 d268a7fbb868
child 3032 9c190d3c165b
equal deleted inserted replaced
2985:d268a7fbb868 2986:c0c91cd3f423
   104   
   104   
   105     if hwRound(X) < -cScreenWidth - 64 then X:= int2hwFloat(cScreenWidth + LAND_WIDTH) else
   105     if hwRound(X) < -cScreenWidth - 64 then X:= int2hwFloat(cScreenWidth + LAND_WIDTH) else
   106     if hwRound(X) > cScreenWidth + LAND_WIDTH then X:= int2hwFloat(-cScreenWidth - 64);
   106     if hwRound(X) > cScreenWidth + LAND_WIDTH then X:= int2hwFloat(-cScreenWidth - 64);
   107     // if hwRound(Y) < (LAND_HEIGHT - 1024 - 75) then Y:= Y + int2hwFloat(25); // For if flag is set for flakes rising upwards?
   107     // if hwRound(Y) < (LAND_HEIGHT - 1024 - 75) then Y:= Y + int2hwFloat(25); // For if flag is set for flakes rising upwards?
   108     if hwRound(Y) > (LAND_HEIGHT + 75) then Y:= Y - int2hwFloat(1024 + 150); // TODO - configure in theme (jellies for example could use limited range)
   108     if hwRound(Y) > (LAND_HEIGHT + 75) then Y:= Y - int2hwFloat(1024 + 150); // TODO - configure in theme (jellies for example could use limited range)
   109     if (Timer > 0) and (Timer-Steps > 0) then dec(Timer, Steps)
   109     if (Timer > 0) and (Timer-Steps > 0) then
       
   110         begin
       
   111         tdX:= tdX - _0_005*Steps;
       
   112         tdY:= tdY - _0_005*Steps;
       
   113         if tdX < _0 then tdX:= _0;
       
   114         if tdY < _0 then tdY:= _0;
       
   115         dec(Timer, Steps)
       
   116         end
   110     else
   117     else
   111         begin
   118         begin
   112         Timer:= 0;
   119         Timer:= 0;
   113         tdX:= _0;
   120         tdX:= _0;
   114         tdY:= _0
   121         tdY:= _0
   620       begin
   627       begin
   621       Gear:= t;
   628       Gear:= t;
   622       if Gear^.Kind = vgtFlake then
   629       if Gear^.Kind = vgtFlake then
   623           begin
   630           begin
   624           // Damage calc from doMakeExplosion
   631           // Damage calc from doMakeExplosion
   625           dmg:= dmgRadius  + cHHRadius div 2 - hwRound(Distance(Gear^.X - int2hwFloat(X), Gear^.Y - int2hwFloat(Y)));
   632           dmg:= min(100,dmgRadius*2  + cHHRadius div 2 - hwRound(Distance(Gear^.X - int2hwFloat(X), Gear^.Y - int2hwFloat(Y))));
   626           if dmg > 1 then
   633           if dmg > 1 then
   627               begin
   634               begin
   628               Gear^.tdX:= Gear^.dX + SignAs(_0_01 * dmg + cHHKick, Gear^.X - int2hwFloat(X));
   635               Gear^.tdX:= Gear^.dX + SignAs(_0_01 * dmg + cHHKick, Gear^.X - int2hwFloat(X));
   629               Gear^.tdY:= Gear^.dY + SignAs(_0_01 * dmg + cHHKick, Gear^.Y - int2hwFloat(Y));
   636               Gear^.tdY:= Gear^.dY + SignAs(_0_01 * dmg + cHHKick, Gear^.Y - int2hwFloat(Y));
   630               Gear^.Timer:= 100
   637               Gear^.Timer:= 200
   631               end
   638               end
   632           end;
   639           end;
   633       t:= Gear^.NextGear
   640       t:= Gear^.NextGear
   634       end
   641       end
   635 end;
   642 end;