hedgewars/uMisc.pas
branchtransitional_engine
changeset 15900 128ace913837
parent 15335 f9f34158ef72
child 15901 f39f0f614dbf
equal deleted inserted replaced
15899:73cdc306888f 15900:128ace913837
    27 procedure freeModule;
    27 procedure freeModule;
    28 
    28 
    29 function  doSurfaceConversion(tmpsurf: PSDL_Surface): PSDL_Surface;
    29 function  doSurfaceConversion(tmpsurf: PSDL_Surface): PSDL_Surface;
    30 function MakeScreenshot(filename: shortstring; k: LongInt; dump: LongWord): boolean;
    30 function MakeScreenshot(filename: shortstring; k: LongInt; dump: LongWord): boolean;
    31 function  GetTeamStatString(p: PTeam): shortstring;
    31 function  GetTeamStatString(p: PTeam): shortstring;
    32 function  SDL_RectMake(x, y, width, height: LongInt): TSDL_Rect; inline;
    32 function  SDL_RectMake(x, y, width, height: LongInt): TSDL_Rect;
    33 
    33 
    34 implementation
    34 implementation
    35 uses uVariables, uUtils
    35 uses uVariables, uUtils, uLandUtils
    36      {$IFDEF PNG_SCREENSHOTS}, PNGh, png {$ENDIF};
    36      {$IFDEF PNG_SCREENSHOTS}, PNGh, png {$ENDIF};
    37 
    37 
    38 type PScreenshot = ^TScreenshot;
    38 type PScreenshot = ^TScreenshot;
    39      TScreenshot = record
    39      TScreenshot = record
    40          buffer: PByte;
    40          buffer: PByte;
   289         for x:= 0 to LAND_WIDTH-1 do
   289         for x:= 0 to LAND_WIDTH-1 do
   290             if dump = 2 then
   290             if dump = 2 then
   291                 PLongWordArray(p)^[y*LAND_WIDTH+x]:= LandPixels[LAND_HEIGHT-1-y, x]
   291                 PLongWordArray(p)^[y*LAND_WIDTH+x]:= LandPixels[LAND_HEIGHT-1-y, x]
   292             else
   292             else
   293                 begin
   293                 begin
   294                 if Land[LAND_HEIGHT-1-y, x] and lfIndestructible = lfIndestructible then
   294                 if LandGet(LAND_HEIGHT-1-y, x) and lfIndestructible = lfIndestructible then
   295                     PLongWordArray(p)^[y*LAND_WIDTH+x]:= (AMask or RMask)
   295                     PLongWordArray(p)^[y*LAND_WIDTH+x]:= (AMask or RMask)
   296                 else if Land[LAND_HEIGHT-1-y, x] and lfIce = lfIce then
   296                 else if LandGet(LAND_HEIGHT-1-y, x) and lfIce = lfIce then
   297                     PLongWordArray(p)^[y*LAND_WIDTH+x]:= (AMask or BMask)
   297                     PLongWordArray(p)^[y*LAND_WIDTH+x]:= (AMask or BMask)
   298                 else if Land[LAND_HEIGHT-1-y, x] and lfBouncy = lfBouncy then
   298                 else if LandGet(LAND_HEIGHT-1-y, x) and lfBouncy = lfBouncy then
   299                     PLongWordArray(p)^[y*LAND_WIDTH+x]:= (AMask or GMask)
   299                     PLongWordArray(p)^[y*LAND_WIDTH+x]:= (AMask or GMask)
   300                 else if Land[LAND_HEIGHT-1-y, x] and lfObject = lfObject then
   300                 else if LandGet(LAND_HEIGHT-1-y, x) and lfObject = lfObject then
   301                     PLongWordArray(p)^[y*LAND_WIDTH+x]:= $FFFFFFFF
   301                     PLongWordArray(p)^[y*LAND_WIDTH+x]:= $FFFFFFFF
   302                 else if Land[LAND_HEIGHT-1-y, x] and lfBasic = lfBasic then
   302                 else if LandGet(LAND_HEIGHT-1-y, x) and lfBasic = lfBasic then
   303                     PLongWordArray(p)^[y*LAND_WIDTH+x]:= AMask
   303                     PLongWordArray(p)^[y*LAND_WIDTH+x]:= AMask
   304                 else
   304                 else
   305                     PLongWordArray(p)^[y*LAND_WIDTH+x]:= 0
   305                     PLongWordArray(p)^[y*LAND_WIDTH+x]:= 0
   306                 end
   306                 end
   307     end
   307     end
   351         SDL_FreeSurface(tmpsurf);
   351         SDL_FreeSurface(tmpsurf);
   352         doSurfaceConversion:= convertedSurf;
   352         doSurfaceConversion:= convertedSurf;
   353     end;
   353     end;
   354 end;
   354 end;
   355 
   355 
   356 function SDL_RectMake(x, y, width, height: LongInt): TSDL_Rect; inline;
   356 function SDL_RectMake(x, y, width, height: LongInt): TSDL_Rect;
   357 begin
   357 begin
   358     SDL_RectMake.x:= x;
   358     SDL_RectMake.x:= x;
   359     SDL_RectMake.y:= y;
   359     SDL_RectMake.y:= y;
   360     SDL_RectMake.w:= width;
   360     SDL_RectMake.w:= width;
   361     SDL_RectMake.h:= height;
   361     SDL_RectMake.h:= height;