+ change(int(pos.x - x_offset)/32, int(pos.y - y_offset)/32, newtile);
+}
+
+void
+TileMap::change_all(uint32_t oldtile, uint32_t newtile)
+{
+ for (size_t x = 0; x < get_width(); x++)
+ for (size_t y = 0; y < get_height(); y++) {
+ if (get_tile(x,y)->getID() == oldtile) change(x,y,newtile);
+ }
+}
+
+void
+TileMap::fade(float alpha, float seconds)
+{
+ this->alpha = alpha;
+ this->remaining_fade_time = seconds;
+}
+
+
+void
+TileMap::set_alpha(float alpha)
+{
+ this->alpha = alpha;
+ this->current_alpha = alpha;
+ this->remaining_fade_time = 0;
+ if (current_alpha < 0.25) set_solid(false);
+ if (current_alpha > 0.75) set_solid(true);
+}
+
+float
+TileMap::get_alpha()
+{
+ return this->current_alpha;