hedgewars/uLandGraphics.pas
changeset 4634 784e2df9e79a
parent 4403 0dfe26f48ec1
child 4635 62d0873459e5
equal deleted inserted replaced
4633:e69becb1ac14 4634:784e2df9e79a
   196            if (cReducedQuality and rqBlurryLand) = 0 then
   196            if (cReducedQuality and rqBlurryLand) = 0 then
   197                LandPixels[t, i]:= LandBackPixel(i, t)
   197                LandPixels[t, i]:= LandBackPixel(i, t)
   198            else
   198            else
   199                LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
   199                LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
   200            end
   200            end
   201        else
   201        else if (cReducedQuality and rqBlurryLand) = 0 then
   202            if ((Land[t, i] and lfObject) <> 0) then
       
   203                if (cReducedQuality and rqBlurryLand) = 0 then
       
   204                    LandPixels[t, i]:= 0
   202                    LandPixels[t, i]:= 0
   205                else
   203                else
   206                    LandPixels[t div 2, i div 2]:= 0;
   204                    LandPixels[t div 2, i div 2]:= 0;
   207 
   205 
   208 t:= y - dy;
   206 t:= y - dy;
   214            if (cReducedQuality and rqBlurryLand) = 0 then
   212            if (cReducedQuality and rqBlurryLand) = 0 then
   215                LandPixels[t, i]:= LandBackPixel(i, t)
   213                LandPixels[t, i]:= LandBackPixel(i, t)
   216            else
   214            else
   217                LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
   215                LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
   218            end
   216            end
   219        else
   217        else if (cReducedQuality and rqBlurryLand) = 0 then
   220            if ((Land[t, i] and lfObject) <> 0) then
       
   221                if (cReducedQuality and rqBlurryLand) = 0 then
       
   222                    LandPixels[t, i]:= 0
   218                    LandPixels[t, i]:= 0
   223                else
   219                else
   224                    LandPixels[t div 2, i div 2]:= 0;
   220                    LandPixels[t div 2, i div 2]:= 0;
   225 
   221 
   226 t:= y + dx;
   222 t:= y + dx;
   232            if (cReducedQuality and rqBlurryLand) = 0 then
   228            if (cReducedQuality and rqBlurryLand) = 0 then
   233            LandPixels[t, i]:= LandBackPixel(i, t)
   229            LandPixels[t, i]:= LandBackPixel(i, t)
   234             else
   230             else
   235            LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
   231            LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
   236            end
   232            end
   237        else
   233        else if (cReducedQuality and rqBlurryLand) = 0 then
   238             if ((Land[t, i] and lfObject) <> 0) then
   234           	LandPixels[t, i]:= 0
   239             if (cReducedQuality and rqBlurryLand) = 0 then
   235             else
   240           LandPixels[t, i]:= 0
   236            	LandPixels[t div 2, i div 2]:= 0;
   241             else
       
   242            LandPixels[t div 2, i div 2]:= 0;
       
   243 
   237 
   244 t:= y - dx;
   238 t:= y - dx;
   245 if (t and LAND_HEIGHT_MASK) = 0 then
   239 if (t and LAND_HEIGHT_MASK) = 0 then
   246    for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
   240    for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
   247        if ((Land[t, i] and lfBasic) <> 0) then
   241        if ((Land[t, i] and lfBasic) <> 0) then
   250            if (cReducedQuality and rqBlurryLand) = 0 then
   244            if (cReducedQuality and rqBlurryLand) = 0 then
   251                LandPixels[t, i]:= LandBackPixel(i, t)
   245                LandPixels[t, i]:= LandBackPixel(i, t)
   252            else
   246            else
   253                LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
   247                LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
   254            end
   248            end
   255        else
   249        else if (cReducedQuality and rqBlurryLand) = 0 then
   256           if ((Land[t, i] and lfObject) <> 0) then
       
   257               if (cReducedQuality and rqBlurryLand) = 0 then
       
   258                 LandPixels[t, i]:= 0
   250                 LandPixels[t, i]:= 0
   259               else
   251               else
   260                 LandPixels[t div 2, i div 2]:= 0;
   252                 LandPixels[t div 2, i div 2]:= 0;
   261 FillLandCircleLinesBG:= cnt;
   253 FillLandCircleLinesBG:= cnt;
   262 end;
   254 end;
   265 var i, t: LongInt;
   257 var i, t: LongInt;
   266 begin
   258 begin
   267 t:= y + dy;
   259 t:= y + dy;
   268 if (t and LAND_HEIGHT_MASK) = 0 then
   260 if (t and LAND_HEIGHT_MASK) = 0 then
   269    for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
   261    for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
   270        if ((Land[t, i] and lfBasic) <> 0) or ((Land[t, i] and lfObject) <> 0) then
   262        if (Land[t, i] and (lfBasic or lfObject)) <> 0 then
   271           begin
   263           begin
   272            if (cReducedQuality and rqBlurryLand) = 0 then
   264            if (cReducedQuality and rqBlurryLand) = 0 then
   273             LandPixels[t, i]:= cExplosionBorderColor
   265             LandPixels[t, i]:= cExplosionBorderColor
   274           else
   266           else
   275             LandPixels[t div 2, i div 2]:= cExplosionBorderColor;
   267             LandPixels[t div 2, i div 2]:= cExplosionBorderColor;
   280           end;
   272           end;
   281 
   273 
   282 t:= y - dy;
   274 t:= y - dy;
   283 if (t and LAND_HEIGHT_MASK) = 0 then
   275 if (t and LAND_HEIGHT_MASK) = 0 then
   284    for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
   276    for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
   285        if ((Land[t, i] and lfBasic) <> 0) or ((Land[t, i] and lfObject) <> 0) then
   277        if (Land[t, i] and (lfBasic or lfObject)) <> 0 then
   286           begin
   278           begin
   287            if (cReducedQuality and rqBlurryLand) = 0 then
   279            if (cReducedQuality and rqBlurryLand) = 0 then
   288               LandPixels[t, i]:= cExplosionBorderColor
   280               LandPixels[t, i]:= cExplosionBorderColor
   289             else
   281             else
   290               LandPixels[t div 2, i div 2]:= cExplosionBorderColor;
   282               LandPixels[t div 2, i div 2]:= cExplosionBorderColor;
   294           end;
   286           end;
   295 
   287 
   296 t:= y + dx;
   288 t:= y + dx;
   297 if (t and LAND_HEIGHT_MASK) = 0 then
   289 if (t and LAND_HEIGHT_MASK) = 0 then
   298    for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
   290    for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
   299        if ((Land[t, i] and lfBasic) <> 0) or ((Land[t, i] and lfObject) <> 0) then
   291        if (Land[t, i] and (lfBasic or lfObject)) <> 0 then
   300            begin
   292            begin
   301            if (cReducedQuality and rqBlurryLand) = 0 then
   293            if (cReducedQuality and rqBlurryLand) = 0 then
   302            LandPixels[t, i]:= cExplosionBorderColor
   294            LandPixels[t, i]:= cExplosionBorderColor
   303             else
   295             else
   304            LandPixels[t div 2, i div 2]:= cExplosionBorderColor;
   296            LandPixels[t div 2, i div 2]:= cExplosionBorderColor;
   309            end;
   301            end;
   310 
   302 
   311 t:= y - dx;
   303 t:= y - dx;
   312 if (t and LAND_HEIGHT_MASK) = 0 then
   304 if (t and LAND_HEIGHT_MASK) = 0 then
   313    for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
   305    for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
   314        if ((Land[t, i] and lfBasic) <> 0) or ((Land[t, i] and lfObject) <> 0) then
   306        if (Land[t, i] and (lfBasic or lfObject)) <> 0 then
   315           begin
   307           begin
   316            if (cReducedQuality and rqBlurryLand) = 0 then
   308            if (cReducedQuality and rqBlurryLand) = 0 then
   317           LandPixels[t, i]:= cExplosionBorderColor
   309           LandPixels[t, i]:= cExplosionBorderColor
   318             else
   310             else
   319           LandPixels[t div 2, i div 2]:= cExplosionBorderColor;
   311           LandPixels[t div 2, i div 2]:= cExplosionBorderColor;
   428 
   420 
   429 for i:= 0 to Pred(Count) do
   421 for i:= 0 to Pred(Count) do
   430     begin
   422     begin
   431     for ty:= Max(y - Radius, 0) to Min(y + Radius, LAND_HEIGHT) do
   423     for ty:= Max(y - Radius, 0) to Min(y + Radius, LAND_HEIGHT) do
   432         for tx:= Max(0, ar^[i].Left - Radius) to Min(LAND_WIDTH, ar^[i].Right + Radius) do
   424         for tx:= Max(0, ar^[i].Left - Radius) to Min(LAND_WIDTH, ar^[i].Right + Radius) do
   433             if ((Land[ty, tx] and lfBasic) <> 0) or ((Land[ty, tx] and lfObject) <> 0) then
   425             if (Land[ty, tx] and (lfBasic or lfObject)) <> 0 then
   434                 begin
   426                 begin
   435                     if (cReducedQuality and rqBlurryLand) = 0 then
   427                     if (cReducedQuality and rqBlurryLand) = 0 then
   436                         LandPixels[ty, tx]:= cExplosionBorderColor
   428                         LandPixels[ty, tx]:= cExplosionBorderColor
   437                     else
   429                     else
   438                         LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor;
   430                         LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor;