hedgewars/uLandGraphics.pas
changeset 2666 2b8c8f16421e
parent 2648 415a75d45693
child 2695 ed789a7ef68d
equal deleted inserted replaced
2665:50b4e544c163 2666:2b8c8f16421e
   353 for i:= 0 to 7 do
   353 for i:= 0 to 7 do
   354     begin
   354     begin
   355     X:= nx - dX8;
   355     X:= nx - dX8;
   356     Y:= ny - dY8;
   356     Y:= ny - dY8;
   357     for t:= -8 to ticks + 8 do
   357     for t:= -8 to ticks + 8 do
   358         {$INCLUDE "tunsetborder.inc"}
   358     begin
       
   359 	X:= X + dX;
       
   360 	Y:= Y + dY;
       
   361 	tx:= hwRound(X);
       
   362 	ty:= hwRound(Y);
       
   363 	if ((ty and LAND_HEIGHT_MASK) = 0) and
       
   364 	   ((tx and LAND_WIDTH_MASK) = 0) and
       
   365 	   ((Land[ty, tx] = COLOR_LAND) or 
       
   366 	   (Land[ty, tx] = COLOR_OBJECT)) then
       
   367 		LandPixels[ty, tx]:= cExplosionBorderColor
       
   368     end;
   359     nx:= nx - dY;
   369     nx:= nx - dY;
   360     ny:= ny + dX;
   370     ny:= ny + dX;
   361     end;
   371     end;
   362 
   372 
   363 for i:= -HalfWidth to HalfWidth do
   373 for i:= -HalfWidth to HalfWidth do
   364     begin
   374     begin
   365     X:= nx - dX8;
   375     X:= nx - dX8;
   366     Y:= ny - dY8;
   376     Y:= ny - dY8;
   367     for t:= 0 to 7 do
   377     for t:= 0 to 7 do
   368         {$INCLUDE "tunsetborder.inc"}
   378     begin
       
   379 	X:= X + dX;
       
   380 	Y:= Y + dY;
       
   381 	tx:= hwRound(X);
       
   382 	ty:= hwRound(Y);
       
   383 	if ((ty and LAND_HEIGHT_MASK) = 0) and
       
   384 	   ((tx and LAND_WIDTH_MASK) = 0) and
       
   385 	   ((Land[ty, tx] = COLOR_LAND) or 
       
   386 	   (Land[ty, tx] = COLOR_OBJECT)) then
       
   387 		LandPixels[ty, tx]:= cExplosionBorderColor
       
   388     end;
   369     X:= nx;
   389     X:= nx;
   370     Y:= ny;
   390     Y:= ny;
   371     for t:= 0 to ticks do
   391     for t:= 0 to ticks do
   372         begin
   392         begin
   373         X:= X + dX;
   393         X:= X + dX;
   382                 LandPixels[ty, tx]:= 0;
   402                 LandPixels[ty, tx]:= 0;
   383             Land[ty, tx]:= 0;
   403             Land[ty, tx]:= 0;
   384             end
   404             end
   385         end;
   405         end;
   386     for t:= 0 to 7 do
   406     for t:= 0 to 7 do
   387         {$INCLUDE "tunsetborder.inc"}
   407     begin
       
   408 	X:= X + dX;
       
   409 	Y:= Y + dY;
       
   410 	tx:= hwRound(X);
       
   411 	ty:= hwRound(Y);
       
   412 	if ((ty and LAND_HEIGHT_MASK) = 0) and
       
   413 	   ((tx and LAND_WIDTH_MASK) = 0) and
       
   414 	   ((Land[ty, tx] = COLOR_LAND) or 
       
   415 	   (Land[ty, tx] = COLOR_OBJECT)) then
       
   416 		LandPixels[ty, tx]:= cExplosionBorderColor
       
   417     end;
   388     nx:= nx - dY;
   418     nx:= nx - dY;
   389     ny:= ny + dX;
   419     ny:= ny + dX;
   390     end;
   420     end;
   391 
   421 
   392 for i:= 0 to 7 do
   422 for i:= 0 to 7 do
   393     begin
   423     begin
   394     X:= nx - dX8;
   424     X:= nx - dX8;
   395     Y:= ny - dY8;
   425     Y:= ny - dY8;
   396     for t:= -8 to ticks + 8 do
   426     for t:= -8 to ticks + 8 do
   397         {$INCLUDE "tunsetborder.inc"}
   427     begin
       
   428 	X:= X + dX;
       
   429 	Y:= Y + dY;
       
   430 	tx:= hwRound(X);
       
   431 	ty:= hwRound(Y);
       
   432 	if ((ty and LAND_HEIGHT_MASK) = 0) and
       
   433 	   ((tx and LAND_WIDTH_MASK) = 0) and
       
   434 	   ((Land[ty, tx] = COLOR_LAND) or 
       
   435 	   (Land[ty, tx] = COLOR_OBJECT)) then
       
   436 		LandPixels[ty, tx]:= cExplosionBorderColor
       
   437     end;
   398     nx:= nx - dY;
   438     nx:= nx - dY;
   399     ny:= ny + dX;
   439     ny:= ny + dX;
   400     end;
   440     end;
   401 
   441 
   402 tx:= max(stX - HalfWidth * 2 - 4 - abs(hwRound(dX * ticks)), 0);
   442 tx:= max(stX - HalfWidth * 2 - 4 - abs(hwRound(dX * ticks)), 0);