hedgewars/GSHandlers.inc
changeset 4796 40f29f4300aa
parent 4795 d2f9f71b4491
child 4797 15a443eec371
equal deleted inserted replaced
4795:d2f9f71b4491 4796:40f29f4300aa
   590 
   590 
   591         move:= false;
   591         move:= false;
   592     // move back to cloud layer
   592     // move back to cloud layer
   593         if yy > cWaterLine then move:= true
   593         if yy > cWaterLine then move:= true
   594         else if ((yy and LAND_HEIGHT_MASK) <> 0) or ((xx and LAND_WIDTH_MASK) <> 0) then move:=true
   594         else if ((yy and LAND_HEIGHT_MASK) <> 0) or ((xx and LAND_WIDTH_MASK) <> 0) then move:=true
       
   595         // Hog encountered
       
   596         else if ((Land[yy, xx] and $FF) <> 0) then move:=true
   595         // Solid pixel encountered
   597         // Solid pixel encountered
   596         else if (Land[yy, xx] > 255) then
   598         else if (Land[yy, xx] > 255) then
   597             begin
   599             begin
   598             // If there's room below keep falling
   600             // If there's room below keep falling
   599             if (((yy-1) and LAND_HEIGHT_MASK) = 0) and (Land[yy-1, xx] = 0) then
   601             if (((yy-1) and LAND_HEIGHT_MASK) = 0) and (Land[yy-1, xx] = 0) then
   634                     p:= s^.pixels;
   636                     p:= s^.pixels;
   635                     allpx:= true;
   637                     allpx:= true;
   636                     for py:= 0 to Pred(s^.h) do
   638                     for py:= 0 to Pred(s^.h) do
   637                         begin
   639                         begin
   638                         for px:= 0 to Pred(s^.w) do
   640                         for px:= 0 to Pred(s^.w) do
   639                             if (((yy + py) and LAND_HEIGHT_MASK) = 0) and (((xx + px) and LAND_WIDTH_MASK) = 0) then
   641                             if (((yy + py) and LAND_HEIGHT_MASK) = 0) and (((xx + px) and LAND_WIDTH_MASK) = 0) and if ((Land[yy + py, xx + px] and $FF) = 0) then
   640                                 begin
   642                                 begin
   641                                 if (cReducedQuality and rqBlurryLand) = 0 then
   643                                 if (cReducedQuality and rqBlurryLand) = 0 then
   642                                     begin
   644                                     begin
   643                                     LandPixels[yy + py, xx + px]:= addBgColor(LandPixels[yy + py, xx + px], p^[px]);
   645                                     LandPixels[yy + py, xx + px]:= addBgColor(LandPixels[yy + py, xx + px], p^[px]);
   644                                     Land[yy + py, xx + px]:= Land[yy + py, xx + px] or lfObject;
   646                                     Land[yy + py, xx + px]:= Land[yy + py, xx + px] or lfObject;