diff -r 6a1185633872 -r 0e1208e92dfe hedgewars/uLand.pas --- a/hedgewars/uLand.pas Sun Nov 29 16:37:12 2009 +0000 +++ b/hedgewars/uLand.pas Sun Nov 29 16:56:04 2009 +0000 @@ -38,10 +38,12 @@ hasBorder: boolean; hasGirders: boolean; playHeight, playWidth, leftX, rightX, topY, MaxHedgehogs: Longword; // idea is that a template can specify height/width. Or, a map, a height/width by the dimensions of the image. If the map has pixels near top of image, it triggers border. + LandBackSurface: PSDL_Surface = nil; procedure GenMap; function GenPreview: TPreview; procedure CheckLandDigest(s: shortstring); +function LandBackPixel(x, y: LongInt): LongWord; implementation uses uConsole, uStore, uMisc, uRandom, uTeams, uLandObjects, uSHA, uIO, uAmmos, uLandTexture; @@ -307,6 +309,18 @@ end; end; +function LandBackPixel(x, y: LongInt): LongWord; +var p: PLongWordArray; +begin + if LandBackSurface = nil then + LandBackPixel:= 0 + else + begin + p:= LandBackSurface^.pixels; + LandBackPixel:= p^[LandBackSurface^.w * (y mod LandBackSurface^.h) + (x mod LandBackSurface^.w)];// or $FF000000; + end +end; + procedure ColorizeLand(Surface: PSDL_Surface); var tmpsurf: PSDL_Surface; r, rr: TSDL_Rect; @@ -326,6 +340,8 @@ end; SDL_FreeSurface(tmpsurf); +LandBackSurface:= LoadImage(Pathz[ptCurrTheme] + '/LandBackTex', ifIgnoreCaps or ifTransparent); + tmpsurf:= LoadImage(Pathz[ptCurrTheme] + '/Border', ifCritical or ifIgnoreCaps or ifTransparent); for x:= 0 to LAND_WIDTH - 1 do begin @@ -835,4 +851,7 @@ initialization +finalization +if LandBackSurface <> nil then + SDL_FreeSurface(LandBackSurface); end.