projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- beginnings of a wingling
[supertux.git]
/
src
/
world.cpp
diff --git
a/src/world.cpp
b/src/world.cpp
index
d8a4f7c
..
0c28cb0
100644
(file)
--- a/
src/world.cpp
+++ b/
src/world.cpp
@@
-48,16
+48,20
@@
World::World(const std::string& filename, int level_nr)
// world calls child functions
current_ = this;
// world calls child functions
current_ = this;
+ tux = new Player(displaymanager);
+ add_object(tux);
+
level = new Level();
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);
}
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();
set_defaults();
level->load_gfx();
@@
-75,9
+79,6
@@
World::World(const std::string& filename, int level_nr)
add_object(new TileMap(displaymanager, level));
level->load_song();
add_object(new TileMap(displaymanager, level));
level->load_song();
- camera = new Camera(tux, level);
- add_object(camera);
-
apply_bonuses();
}
apply_bonuses();
}
@@
-203,7
+204,8
@@
World::action(float elapsed_time)
* during the iteration)
*/
for(size_t i = 0; i < gameobjects.size(); ++i)
* 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();
/* Handle all possible collisions. */
collision_handler();