hedgewars/uLand.pas
changeset 12086 ba1807589eaa
parent 11881 34ede05e4d4f
child 12087 78e9fbd52ffc
equal deleted inserted replaced
12085:e9a4afec9a3a 12086:ba1807589eaa
   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