From 1c1c97cbd1d7913ac12bf550ec02c97f843a0fd3 Mon Sep 17 00:00:00 2001 From: Loïc Blot Date: Sun, 20 Aug 2017 13:30:50 +0200 Subject: Modernize source code: last part (#6285) * Modernize source code: last par * Use empty when needed * Use emplace_back instead of push_back when needed * For range-based loops * Initializers fixes * constructors, destructors default * c++ C stl includes --- src/subgame.cpp | 74 +++++++++++++++++++++++++-------------------------------- 1 file changed, 33 insertions(+), 41 deletions(-) (limited to 'src/subgame.cpp') diff --git a/src/subgame.cpp b/src/subgame.cpp index cd2aa752b..eb2ea01c1 100644 --- a/src/subgame.cpp +++ b/src/subgame.cpp @@ -71,7 +71,7 @@ std::string getSubgamePathEnv() SubgameSpec findSubgame(const std::string &id) { - if(id == "") + if (id.empty()) return SubgameSpec(); std::string share = porting::path_share; std::string user = porting::path_user; @@ -81,32 +81,27 @@ SubgameSpec findSubgame(const std::string &id) while (!search_paths.at_end()) { std::string path = search_paths.next(PATH_DELIM); - find_paths.push_back(GameFindPath( - path + DIR_DELIM + id, false)); - find_paths.push_back(GameFindPath( - path + DIR_DELIM + id + "_game", false)); + find_paths.emplace_back(path + DIR_DELIM + id, false); + find_paths.emplace_back(path + DIR_DELIM + id + "_game", false); } - find_paths.push_back(GameFindPath( - user + DIR_DELIM + "games" + DIR_DELIM + id + "_game", true)); - find_paths.push_back(GameFindPath( - user + DIR_DELIM + "games" + DIR_DELIM + id, true)); - find_paths.push_back(GameFindPath( - share + DIR_DELIM + "games" + DIR_DELIM + id + "_game", false)); - find_paths.push_back(GameFindPath( - share + DIR_DELIM + "games" + DIR_DELIM + id, false)); + find_paths.emplace_back(user + DIR_DELIM + "games" + DIR_DELIM + id + "_game", true); + find_paths.emplace_back(user + DIR_DELIM + "games" + DIR_DELIM + id, true); + find_paths.emplace_back(share + DIR_DELIM + "games" + DIR_DELIM + id + "_game", + false); + find_paths.emplace_back(share + DIR_DELIM + "games" + DIR_DELIM + id, false); // Find game directory std::string game_path; bool user_game = true; // Game is in user's directory - for(u32 i=0; i getAvailableGameIds() while (!search_paths.at_end()) gamespaths.insert(search_paths.next(PATH_DELIM)); - for (std::set::const_iterator i = gamespaths.begin(); - i != gamespaths.end(); ++i){ - std::vector dirlist = fs::GetDirListing(*i); - for(u32 j=0; j dirlist = fs::GetDirListing(gamespath); + for (const fs::DirListNode &dln : dirlist) { + if(!dln.dir) continue; // If configuration file is not found or broken, ignore game Settings conf; - if(!getGameConfig(*i + DIR_DELIM + dirlist[j].name, conf)) + if(!getGameConfig(gamespath + DIR_DELIM + dln.name, conf)) continue; // Add it to result const char *ends[] = {"_game", NULL}; - std::string shorter = removeStringEnd(dirlist[j].name, ends); - if(shorter != "") + std::string shorter = removeStringEnd(dln.name, ends); + if (!shorter.empty()) gameids.insert(shorter); else - gameids.insert(dirlist[j].name); + gameids.insert(dln.name); } } return gameids; @@ -182,9 +176,8 @@ std::vector getAvailableGames() { std::vector specs; std::set gameids = getAvailableGameIds(); - for(std::set::const_iterator i = gameids.begin(); - i != gameids.end(); ++i) - specs.push_back(findSubgame(*i)); + for (const auto &gameid : gameids) + specs.push_back(findSubgame(gameid)); return specs; } @@ -235,15 +228,14 @@ std::vector getAvailableWorlds() worldspaths.insert(porting::path_user + DIR_DELIM + "worlds"); infostream << "Searching worlds..." << std::endl; - for (std::set::const_iterator i = worldspaths.begin(); - i != worldspaths.end(); ++i) { - infostream << " In " << (*i) << ": " < dirvector = fs::GetDirListing(*i); - for(u32 j=0; j dirvector = fs::GetDirListing(worldspath); + for (const fs::DirListNode &dln : dirvector) { + if(!dln.dir) continue; - std::string fullpath = *i + DIR_DELIM + dirvector[j].name; - std::string name = dirvector[j].name; + std::string fullpath = worldspath + DIR_DELIM + dln.name; + std::string name = dln.name; // Just allow filling in the gameid always for now bool can_be_legacy = true; std::string gameid = getWorldGameId(fullpath, can_be_legacy); @@ -267,7 +259,7 @@ std::vector getAvailableWorlds() WorldSpec spec(fullpath, name, gameid); infostream<<"Old world found."<