projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix all #29358 issues
[supertux.git]
/
src
/
worldmap
/
worldmap.cpp
diff --git
a/src/worldmap/worldmap.cpp
b/src/worldmap/worldmap.cpp
index
3300fa8
..
f6be69f
100644
(file)
--- a/
src/worldmap/worldmap.cpp
+++ b/
src/worldmap/worldmap.cpp
@@
-330,7
+330,7
@@
WorldMap::load(const std::string& filename)
}
current_tileset = NULL;
}
current_tileset = NULL;
- if(solid_tilemaps.
size() == 0
)
+ if(solid_tilemaps.
empty()
)
throw std::runtime_error("No solid tilemap specified");
move_to_spawnpoint("main");
throw std::runtime_error("No solid tilemap specified");
move_to_spawnpoint("main");
@@
-481,6
+481,10
@@
WorldMap::finished_level(Level* gamelevel)
// TODO use Level* parameter here?
LevelTile* level = at_level();
// TODO use Level* parameter here?
LevelTile* level = at_level();
+ if(level == NULL) {
+ return;
+ }
+
bool old_level_state = level->solved;
level->solved = true;
level->sprite->set_action("solved");
bool old_level_state = level->solved;
level->solved = true;
level->sprite->set_action("solved");
@@
-718,7
+722,7
@@
WorldMap::tile_data_at(Vector p)
{
int dirs = 0;
{
int dirs = 0;
- for(std::list<TileMap*>::const_iterator i = solid_tilemaps.begin(); i != solid_tilemaps.end();
i++
) {
+ for(std::list<TileMap*>::const_iterator i = solid_tilemaps.begin(); i != solid_tilemaps.end();
++i
) {
TileMap* tilemap = *i;
const Tile* tile = tilemap->get_tile((int)p.x, (int)p.y);
int dirdata = tile->getData();
TileMap* tilemap = *i;
const Tile* tile = tilemap->get_tile((int)p.x, (int)p.y);
int dirdata = tile->getData();
@@
-1030,16
+1034,25
@@
WorldMap::save_state()
store_bool(vm, "perfect", level->perfect);
level->statistics.serialize_to_squirrel(vm);
store_bool(vm, "perfect", level->perfect);
level->statistics.serialize_to_squirrel(vm);
- sq_newslot(vm, -3, SQFalse);
+ if(SQ_FAILED(sq_newslot(vm, -3, SQFalse)))
+ {
+ throw std::runtime_error("failed to create '" + name + "' table entry");
+ }
}
}
- sq_newslot(vm, -3, SQFalse);
+ if(SQ_FAILED(sq_newslot(vm, -3, SQFalse)))
+ {
+ throw std::runtime_error("failed to create '" + name + "' table entry");
+ }
// overall statistics...
total_stats.serialize_to_squirrel(vm);
// push world into worlds table
// overall statistics...
total_stats.serialize_to_squirrel(vm);
// push world into worlds table
- sq_newslot(vm, -3, SQFalse);
+ if(SQ_FAILED(sq_newslot(vm, -3, SQFalse)))
+ {
+ throw std::runtime_error("failed to create '" + name + "' table entry");
+ }
} catch(std::exception& ) {
sq_settop(vm, oldtop);
}
} catch(std::exception& ) {
sq_settop(vm, oldtop);
}
@@
-1180,7
+1193,7
@@
float
WorldMap::get_width() const
{
float width = 0;
WorldMap::get_width() const
{
float width = 0;
- for(std::list<TileMap*>::const_iterator i = solid_tilemaps.begin(); i != solid_tilemaps.end();
i++
) {
+ for(std::list<TileMap*>::const_iterator i = solid_tilemaps.begin(); i != solid_tilemaps.end();
++i
) {
TileMap* solids = *i;
if (solids->get_width() > width) width = solids->get_width();
}
TileMap* solids = *i;
if (solids->get_width() > width) width = solids->get_width();
}
@@
-1191,7
+1204,7
@@
float
WorldMap::get_height() const
{
float height = 0;
WorldMap::get_height() const
{
float height = 0;
- for(std::list<TileMap*>::const_iterator i = solid_tilemaps.begin(); i != solid_tilemaps.end();
i++
) {
+ for(std::list<TileMap*>::const_iterator i = solid_tilemaps.begin(); i != solid_tilemaps.end();
++i
) {
TileMap* solids = *i;
if (solids->get_height() > height) height = solids->get_height();
}
TileMap* solids = *i;
if (solids->get_height() > height) height = solids->get_height();
}