hedgewars/uLandGraphics.pas
changeset 64 9df467527ae5
parent 57 e1a77ae57065
child 101 f568cc72ea8c
equal deleted inserted replaced
63:27e2b5bb6d4b 64:9df467527ae5
    10 procedure DrawHLinesExplosions(ar: PRangeArray; Radius: Longword; y, dY: integer; Count: Byte);
    10 procedure DrawHLinesExplosions(ar: PRangeArray; Radius: Longword; y, dY: integer; Count: Byte);
    11 procedure DrawTunnel(X, Y, dX, dY: real; ticks, HalfWidth: integer);
    11 procedure DrawTunnel(X, Y, dX, dY: real; ticks, HalfWidth: integer);
    12 procedure FillRoundInLand(X, Y, Radius: integer; Value: Longword);
    12 procedure FillRoundInLand(X, Y, Radius: integer; Value: Longword);
    13 
    13 
    14 implementation
    14 implementation
    15 uses SDLh, uStore, uMisc, uLand;
    15 uses SDLh, uStore, uMisc, uLand, uConsts;
    16 
    16 
    17 procedure FillCircleLines(x, y, dx, dy: integer; Value: Longword);
    17 procedure FillCircleLines(x, y, dx, dy: integer; Value: Longword);
    18 var i: integer;
    18 var i: integer;
    19 begin
    19 begin
    20 if ((y + dy) and $FFFFFC00) = 0 then
    20 if ((y + dy) and $FFFFFC00) = 0 then
    95 procedure FillLandCircleLinesEBC(x, y, dx, dy: integer);
    95 procedure FillLandCircleLinesEBC(x, y, dx, dy: integer);
    96 var i: integer;
    96 var i: integer;
    97 begin
    97 begin
    98 if ((y + dy) and $FFFFFC00) = 0 then
    98 if ((y + dy) and $FFFFFC00) = 0 then
    99    for i:= max(x - dx, 0) to min(x + dx, 2047) do
    99    for i:= max(x - dx, 0) to min(x + dx, 2047) do
   100        if Land[y + dy, i] <> 0 then SetLandPixel(y + dy, i);
   100        if Land[y + dy, i] = COLOR_LAND then SetLandPixel(y + dy, i);
   101 if ((y - dy) and $FFFFFC00) = 0 then
   101 if ((y - dy) and $FFFFFC00) = 0 then
   102    for i:= max(x - dx, 0) to min(x + dx, 2047) do
   102    for i:= max(x - dx, 0) to min(x + dx, 2047) do
   103        if Land[y - dy, i] <> 0 then SetLandPixel(y - dy, i);
   103        if Land[y - dy, i] = COLOR_LAND then SetLandPixel(y - dy, i);
   104 if ((y + dx) and $FFFFFC00) = 0 then
   104 if ((y + dx) and $FFFFFC00) = 0 then
   105    for i:= max(x - dy, 0) to min(x + dy, 2047) do
   105    for i:= max(x - dy, 0) to min(x + dy, 2047) do
   106        if Land[y + dx, i] <> 0 then SetLandPixel(y + dx, i);
   106        if Land[y + dx, i] = COLOR_LAND then SetLandPixel(y + dx, i);
   107 if ((y - dx) and $FFFFFC00) = 0 then
   107 if ((y - dx) and $FFFFFC00) = 0 then
   108    for i:= max(x - dy, 0) to min(x + dy, 2047) do
   108    for i:= max(x - dy, 0) to min(x + dy, 2047) do
   109        if Land[y - dx, i] <> 0 then SetLandPixel(y - dx, i);
   109        if Land[y - dx, i] = COLOR_LAND then SetLandPixel(y - dx, i);
   110 end;
   110 end;
   111 
   111 
   112 procedure DrawExplosion(X, Y, Radius: integer);
   112 procedure DrawExplosion(X, Y, Radius: integer);
   113 var dx, dy, d: integer;
   113 var dx, dy, d: integer;
   114 begin
   114 begin