# HG changeset patch # User nemo # Date 1388464127 18000 # Node ID 89e74808836da43659e45f5462117c61127a088d # Parent 54b49e8d8bfa4bd151c67714076b49d6cb1c31e6 allow SDL 1.2 to at least do a 32767 map. We probably should add a TryDo somewhere to assert that limit on SDL 1.2 to avoid overflows. Ditto int version for SDL 2 diff -r 54b49e8d8bfa -r 89e74808836d hedgewars/uLand.pas --- a/hedgewars/uLand.pas Fri Jan 03 01:40:50 2014 +0100 +++ b/hedgewars/uLand.pas Mon Dec 30 23:28:47 2013 -0500 @@ -190,19 +190,22 @@ procedure ColorizeLand(Surface: PSDL_Surface); var tmpsurf: PSDL_Surface; r: TSDL_Rect; + y: LongWord; // stupid SDL 1.2 uses stupid SmallInt for y which limits us to 32767. But is even worse if LandTex is large, can overflow on 32767 map. begin tmpsurf:= LoadDataImage(ptCurrTheme, 'LandTex', ifCritical or ifIgnoreCaps); r.y:= 0; - while r.y < LAND_HEIGHT do - begin + y:= 0; + while y < LAND_HEIGHT do + begin r.x:= 0; while r.x < LAND_WIDTH do - begin + begin SDL_UpperBlit(tmpsurf, nil, Surface, @r); inc(r.x, tmpsurf^.w) + end; + inc(y, tmpsurf^.h); + r.y:= y end; - inc(r.y, tmpsurf^.h) - end; SDL_FreeSurface(tmpsurf); // freed in freeModule() below