// world calls child functions
current_ = this;
+ tux = new Player(displaymanager);
+ add_object(tux);
+
level = new Level();
+ camera = new Camera(tux, level);
+ add_object(camera);
+
if(level_nr >= 0) {
level->load(filename, level_nr, this);
} else {
level->load(filename, this);
}
-
- tux = new Player(displaymanager);
- add_object(tux);
-
+ tux->move(level->start_pos);
+
set_defaults();
level->load_gfx();
add_object(new TileMap(displaymanager, level));
level->load_song();
- camera = new Camera(tux, level);
- add_object(camera);
-
apply_bonuses();
}
* during the iteration)
*/
for(size_t i = 0; i < gameobjects.size(); ++i)
- gameobjects[i]->action(elapsed_time);
+ if(gameobjects[i]->is_valid())
+ gameobjects[i]->action(elapsed_time);
/* Handle all possible collisions. */
collision_handler();