hedgewars/uWorld.pas
changeset 82 2f4f3236cccc
parent 80 3c3dc6a148ca
child 83 207c85fbef51
equal deleted inserted replaced
81:d74e0e914b50 82:2f4f3236cccc
    82 var i, t: integer;
    82 var i, t: integer;
    83     r: TSDL_Rect;
    83     r: TSDL_Rect;
    84     team: PTeam;
    84     team: PTeam;
    85     tdx, tdy: real;
    85     tdx, tdy: real;
    86 
    86 
    87     procedure DrawRepeated(spr: TSprite);
    87     procedure DrawRepeated(spr: TSprite; Shift: integer);
    88     var i, w: integer;
    88     var i, w: integer;
    89     begin
    89     begin
    90     w:= SpritesData[spr].Width;
    90     w:= SpritesData[spr].Width;
    91     i:= WorldDx mod w;
    91     i:= Shift mod w;
    92     if i > 0 then dec(i, w);
    92     if i > 0 then dec(i, w);
    93     repeat
    93     repeat
    94       DrawSprite(spr, i, WorldDy + 1024 - SpritesData[spr].Height, 0, Surface);
    94       DrawSprite(spr, i, WorldDy + 1024 - SpritesData[spr].Height, 0, Surface);
    95       inc(i, w)
    95       inc(i, w)
    96     until i > cScreenWidth
    96     until i > cScreenWidth
   107    r.y:= 0;
   107    r.y:= 0;
   108    r.w:= cScreenWidth;
   108    r.w:= cScreenWidth;
   109    SDL_FillRect(Surface, @r, cSkyColor)
   109    SDL_FillRect(Surface, @r, cSkyColor)
   110    end;
   110    end;
   111 // background
   111 // background
   112 DrawRepeated(sprSky);
   112 DrawRepeated(sprSky, WorldDx * 3 div 8);
   113 DrawRepeated(sprHorizont);
   113 DrawRepeated(sprHorizont, WorldDx * 3 div 5);
   114 
   114 
   115 // Waves
   115 // Waves
   116 {$WARNINGS OFF}
   116 {$WARNINGS OFF}
   117 for i:= -1 to cWaterSprCount do DrawSprite(sprWater,  i * 256  + ((WorldDx + (RealTicks shr 6)      ) and $FF), cWaterLine + WorldDy - 64, 0, Surface);
   117 for i:= -1 to cWaterSprCount do DrawSprite(sprWater,  i * 256  + ((WorldDx + (RealTicks shr 6)      ) and $FF), cWaterLine + WorldDy - 64, 0, Surface);
   118 for i:= -1 to cWaterSprCount do DrawSprite(sprWater,  i * 256  + ((WorldDx - (RealTicks shr 6) + 192) and $FF), cWaterLine + WorldDy - 48, 0, Surface);
   118 for i:= -1 to cWaterSprCount do DrawSprite(sprWater,  i * 256  + ((WorldDx - (RealTicks shr 6) + 192) and $FF), cWaterLine + WorldDy - 48, 0, Surface);