X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fsupertux%2Flevel.cpp;h=311ec12d72696980307c06b40ffe63566a3e9f3e;hb=2fee8cb489f155b847abb2fd90580c4cab5f3cda;hp=9b179bcdc0d6280059bc12908c831cd2947bc821;hpb=b840ee034a2fb290d3d3e16ba0ef78eea8815033;p=supertux.git diff --git a/src/supertux/level.cpp b/src/supertux/level.cpp index 9b179bcdc..311ec12d7 100644 --- a/src/supertux/level.cpp +++ b/src/supertux/level.cpp @@ -32,8 +32,8 @@ using namespace std; Level::Level() : - name("noname"), - author("Mr. X"), + name("noname"), + author("Mr. X"), contact(), license(), filename(), @@ -41,7 +41,7 @@ Level::Level() : sectors(), stats(), target_time(), - tileset(NULL), + tileset(NULL), free_tileset(false) { } @@ -69,28 +69,28 @@ Level::load(const std::string& filepath) int version = 1; level->get("version", version); if(version == 1) { - log_info << "level uses old format: version 1" << std::endl; - tileset = tile_manager->get_tileset("images/tiles.strf"); + log_info << "[" << filepath << "] level uses old format: version 1" << std::endl; + tileset = TileManager::current()->get_tileset("images/tiles.strf"); load_old_format(*level); return; } const lisp::Lisp* tilesets_lisp = level->get_lisp("tilesets"); if(tilesets_lisp != NULL) { - tileset = tile_manager->parse_tileset_definition(*tilesets_lisp); + tileset = TileManager::current()->parse_tileset_definition(*tilesets_lisp).release(); free_tileset = true; } std::string tileset_name; if(level->get("tileset", tileset_name)) { if(tileset != NULL) { - log_warning << "multiple tilesets specified in level" << std::endl; + log_warning << "[" << filepath << "] multiple tilesets specified in level" << std::endl; } else { - tileset = tile_manager->get_tileset(tileset_name); + tileset = TileManager::current()->get_tileset(tileset_name); } } /* load default tileset */ if(tileset == NULL) { - tileset = tile_manager->get_tileset("images/tiles.strf"); + tileset = TileManager::current()->get_tileset("images/tiles.strf"); } current_tileset = tileset; @@ -103,7 +103,7 @@ Level::load(const std::string& filepath) if(token == "version") { iter.value()->get(version); if(version > 2) { - log_warning << "level format newer than application" << std::endl; + log_warning << "[" << filepath << "] level format newer than application" << std::endl; } } else if(token == "tileset" || token == "tilesets") { continue; @@ -124,13 +124,12 @@ Level::load(const std::string& filepath) } else if(token == "target-time") { iter.value()->get(target_time); } else { - log_warning << "Unknown token '" << token << "' in level file" << std::endl; + log_warning << "[" << filepath << "] Unknown token '" << token << "' in level file" << std::endl; } } if (license == "") { - log_warning << "The level author did not specify a license for this level. You might not be allowed to share it." << std::endl; - + log_warning << "[" << filepath << "] The level author \"" << author << "\" did not specify a license for this level \"" << name << "\". You might not be allowed to share it." << std::endl; } } catch(std::exception& e) { std::stringstream msg; @@ -163,11 +162,11 @@ Level::add_sector(Sector* sector) } Sector* -Level::get_sector(const std::string& name) +Level::get_sector(const std::string& name_) { for(Sectors::iterator i = sectors.begin(); i != sectors.end(); ++i) { Sector* sector = *i; - if(sector->get_name() == name) + if(sector->get_name() == name_) return sector; } @@ -175,13 +174,13 @@ Level::get_sector(const std::string& name) } size_t -Level::get_sector_count() +Level::get_sector_count() const { return sectors.size(); } Sector* -Level::get_sector(size_t num) +Level::get_sector(size_t num) const { return sectors.at(num); } @@ -192,15 +191,14 @@ Level::get_total_coins() int total_coins = 0; for(Sectors::iterator i = sectors.begin(); i != sectors.end(); ++i) { Sector* sector = *i; - for(Sector::GameObjects::iterator o = sector->gameobjects.begin(); - o != sector->gameobjects.end(); ++o) { - Coin* coin = dynamic_cast (*o); + for(auto o = sector->gameobjects.begin(); o != sector->gameobjects.end(); ++o) { + Coin* coin = dynamic_cast(o->get()); if(coin) { total_coins++; continue; } - BonusBlock *block = dynamic_cast (*o); + BonusBlock *block = dynamic_cast(o->get()); if(block) { if (block->contents == BonusBlock::CONTENT_COIN) @@ -215,7 +213,7 @@ Level::get_total_coins() continue; } } - GoldBomb *goldbomb = dynamic_cast (*o); + GoldBomb *goldbomb = dynamic_cast(o->get()); if(goldbomb) total_coins += 10; } @@ -236,7 +234,7 @@ int Level::get_total_secrets() { int total_secrets = 0; - for(Sectors::iterator i = sectors.begin(); i != sectors.end(); ++i) + for(auto i = sectors.begin(); i != sectors.end(); ++i) total_secrets += (*i)->get_total_count(); return total_secrets; }