equal
deleted
inserted
replaced
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; |