- Bullet* bullet = dynamic_cast<Bullet*> (*i);
- if(bullet)
- bullets.push_back(bullet);
-#if 0
- InteractiveObject* interactive_object
- = dynamic_cast<InteractiveObject*> (*i);
- if(interactive_object)
- interactive_objects.push_back(interactive_object);
-#endif
+ Bullet* bullet = dynamic_cast<Bullet*> (*i);
+ if(bullet)
+ bullets.push_back(bullet);
+
+ TileMap* tilemap = dynamic_cast<TileMap*> (*i);
+ if(tilemap && tilemap->is_solid()) {
+ if(solids == 0) {
+ solids = tilemap;
+ fix_old_tiles();
+ } else {
+ std::cerr << "Another solid tilemaps added. Ignoring.";
+ }
+ }
+
+ Camera* camera = dynamic_cast<Camera*> (*i);
+ if(camera) {
+ if(this->camera != 0) {
+ std::cerr << "Warning: Multiple cameras added. Ignoring.";
+ continue;
+ }
+ this->camera = camera;
+ }