Addded property to Worldmap Spawnpoint to let Tux automatically start walking (or...
[supertux.git] / src / object / tilemap.cpp
index 6fe11d4..836401d 100644 (file)
@@ -145,6 +145,7 @@ TileMap::update(float elapsed_time)
       if (amt > 0) current_alpha = std::min(current_alpha + amt, alpha);
       if (amt < 0) current_alpha = std::max(current_alpha + amt, alpha);
     }
+    if (current_alpha < 0.25) set_solid(false);
   }
 
   // if we have a path to follow, follow it
@@ -171,8 +172,8 @@ TileMap::draw(DrawingContext& context)
 
   /** if we don't round here, we'll have a 1 pixel gap on screen sometimes.
    * I have no idea why */
-  float start_x = ((int)((roundf(context.get_translation().x) - roundf(x_offset)) / 32)) * 32 + roundf(x_offset);
-  float start_y = ((int)((roundf(context.get_translation().y) - roundf(y_offset)) / 32)) * 32 + roundf(y_offset);
+  float start_x = int((roundf(context.get_translation().x) - roundf(x_offset)) / 32) * 32 + roundf(x_offset);
+  float start_y = int((roundf(context.get_translation().y) - roundf(y_offset)) / 32) * 32 + roundf(y_offset);
   float end_x = std::min(start_x + SCREEN_WIDTH + 32, float(width * 32 + roundf(x_offset)));
   float end_y = std::min(start_y + SCREEN_HEIGHT + 32, float(height * 32 + roundf(y_offset)));
   int tsx = int((start_x - roundf(x_offset)) / 32); // tilestartindex x
@@ -284,6 +285,12 @@ TileMap::resize(int new_width, int new_height)
   width = new_width;
 }
 
+void 
+TileMap::set_solid(bool solid) 
+{
+  this->solid = solid;
+}
+
 const Tile*
 TileMap::get_tile(int x, int y) const
 {