597 |
597 |
598 if allOK then LoadMask; |
598 if allOK then LoadMask; |
599 end; |
599 end; |
600 |
600 |
601 procedure DrawBottomBorder; // broken out from other borders for doing a floor-only map, or possibly updating bottom during SD |
601 procedure DrawBottomBorder; // broken out from other borders for doing a floor-only map, or possibly updating bottom during SD |
602 var x, w, c: Longword; |
602 var x, w, c, y: Longword; |
603 begin |
603 begin |
604 for w:= 0 to 23 do |
604 for w:= 0 to 23 do |
605 for x:= leftX to rightX do |
605 for x:= leftX to rightX do |
606 begin |
606 begin |
607 Land[Longword(cWaterLine) - 1 - w, x]:= lfIndestructible; |
607 y:= Longword(cWaterLine) - 1 - w; |
608 if (x + w) mod 32 < 16 then |
608 Land[y, x]:= lfIndestructible; |
|
609 if (x + y) mod 32 < 16 then |
609 c:= AMask |
610 c:= AMask |
610 else |
611 else |
611 c:= AMask or RMask or GMask; // FF00FFFF |
612 c:= AMask or RMask or GMask; // FF00FFFF |
612 |
613 |
613 if (cReducedQuality and rqBlurryLand) = 0 then |
614 if (cReducedQuality and rqBlurryLand) = 0 then |
614 LandPixels[Longword(cWaterLine) - 1 - w, x]:= c |
615 LandPixels[y, x]:= c |
615 else |
616 else |
616 LandPixels[(Longword(cWaterLine) - 1 - w) div 2, x div 2]:= c |
617 LandPixels[y div 2, x div 2]:= c |
617 end |
618 end |
618 end; |
619 end; |
619 |
620 |
620 procedure GenMap; |
621 procedure GenMap; |
621 var x, y, w, c: Longword; |
622 var x, y, w, c, c2: Longword; |
622 map, mask: shortstring; |
623 map, mask: shortstring; |
623 begin |
624 begin |
624 hasBorder:= false; |
625 hasBorder:= false; |
625 maskOnly:= false; |
626 maskOnly:= false; |
626 |
627 |
699 if (WorldEdge <> weBounce) and (WorldEdge <> weWrap) then |
700 if (WorldEdge <> weBounce) and (WorldEdge <> weWrap) then |
700 for y:= topY to LAND_HEIGHT - 1 do |
701 for y:= topY to LAND_HEIGHT - 1 do |
701 begin |
702 begin |
702 Land[y, leftX + w]:= lfIndestructible; |
703 Land[y, leftX + w]:= lfIndestructible; |
703 Land[y, rightX - w]:= lfIndestructible; |
704 Land[y, rightX - w]:= lfIndestructible; |
704 if (y + w) mod 32 < 16 then |
705 if (y + leftX + w) mod 32 < 16 then |
705 c:= AMask |
706 c:= AMask |
706 else |
707 else |
707 c:= AMask or RMask or GMask; // FF00FFFF |
708 c:= AMask or RMask or GMask; // FF00FFFF |
|
709 if (y + rightX - 5 + w) mod 32 < 16 then |
|
710 c2:= AMask |
|
711 else |
|
712 c2:= AMask or RMask or GMask; // FF00FFFF |
708 |
713 |
709 if (cReducedQuality and rqBlurryLand) = 0 then |
714 if (cReducedQuality and rqBlurryLand) = 0 then |
710 begin |
715 begin |
711 LandPixels[y, leftX + w]:= c; |
716 LandPixels[y, leftX + w]:= c; |
712 LandPixels[y, rightX - w]:= c; |
717 LandPixels[y, rightX - 5 + w]:= c2; |
713 end |
718 end |
714 else |
719 else |
715 begin |
720 begin |
716 LandPixels[y div 2, (leftX + w) div 2]:= c; |
721 LandPixels[y div 2, (leftX + w) div 2]:= c; |
717 LandPixels[y div 2, (rightX - w) div 2]:= c; |
722 LandPixels[y div 2, (rightX - 5 + w) div 2]:= c2; |
718 end; |
723 end; |
719 end; |
724 end; |
720 |
725 |
721 for x:= leftX to rightX do |
726 for x:= leftX to rightX do |
722 begin |
727 begin |