- fixed rising specials
[supertux.git] / src / world.cpp
index 43b0532..d539bfe 100644 (file)
@@ -197,21 +197,21 @@ World::draw()
     }
 
   /* Draw background: */
-  for (y = 0; y < 15; ++y)
+  for (y = 0; y < 16 && y < level->height; ++y)
     {
       for (x = 0; x < 21; ++x)
         {
-          Tile::draw(32*x - fmodf(scroll_x, 32), y * 32,
+          Tile::draw(32*x - fmodf(scroll_x, 32), y * 32 - fmodf(scroll_y, 32),
                      level->bg_tiles[(int)y + (int)(scroll_y / 32)][(int)x + (int)(scroll_x / 32)]);
         }
     }
 
   /* Draw interactive tiles: */
-  for (y = 0; y < 15; ++y)
+  for (y = 0; y < 16 && y < level->height; ++y)
     {
       for (x = 0; x < 21; ++x)
         {
-          Tile::draw(32*x - fmodf(scroll_x, 32), y * 32,
+          Tile::draw(32*x - fmodf(scroll_x, 32), y * 32 - fmodf(scroll_y, 32),
                      level->ia_tiles[(int)y + (int)(scroll_y / 32)][(int)x + (int)(scroll_x / 32)]);
         }
     }
@@ -241,11 +241,11 @@ World::draw()
     broken_bricks[i]->draw();
 
   /* Draw foreground: */
-  for (y = 0; y < 15; ++y)
+  for (y = 0; y < 16 && y < level->height; ++y)
     {
       for (x = 0; x < 21; ++x)
         {
-          Tile::draw(32*x - fmodf(scroll_x, 32), y * 32,
+          Tile::draw(32*x - fmodf(scroll_x, 32), y * 32 - fmodf(scroll_y, 32),
                      level->fg_tiles[(int)y + (int)(scroll_y / 32)][(int)x + (int)(scroll_x / 32)]);
         }
     }