From befc3bba3d56b17d79ffae47d882650a15496e4d Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Mon, 24 Jul 2017 08:26:19 +0200 Subject: [PATCH] LBM: use range based for and fixed a loop variable overloading in applyLBMs --- src/serverenvironment.cpp | 57 +++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 33 deletions(-) diff --git a/src/serverenvironment.cpp b/src/serverenvironment.cpp index bf4b3c0e3..19dff956e 100644 --- a/src/serverenvironment.cpp +++ b/src/serverenvironment.cpp @@ -69,9 +69,8 @@ ABMWithState::ABMWithState(ActiveBlockModifier *abm_): void LBMContentMapping::deleteContents() { - for (std::vector::iterator it = lbm_list.begin(); - it != lbm_list.end(); ++it) { - delete *it; + for (auto &it : lbm_list) { + delete it; } } @@ -83,24 +82,21 @@ void LBMContentMapping::addLBM(LoadingBlockModifierDef *lbm_def, IGameDef *gamed lbm_list.push_back(lbm_def); - for (std::set::const_iterator it = lbm_def->trigger_contents.begin(); - it != lbm_def->trigger_contents.end(); ++it) { + for (const std::string &nodeTrigger: lbm_def->trigger_contents) { std::set c_ids; - bool found = nodedef->getIds(*it, c_ids); + bool found = nodedef->getIds(nodeTrigger, c_ids); if (!found) { - content_t c_id = gamedef->allocateUnknownNodeId(*it); + content_t c_id = gamedef->allocateUnknownNodeId(nodeTrigger); if (c_id == CONTENT_IGNORE) { // Seems it can't be allocated. - warningstream << "Could not internalize node name \"" << *it + warningstream << "Could not internalize node name \"" << nodeTrigger << "\" while loading LBM \"" << lbm_def->name << "\"." << std::endl; continue; } c_ids.insert(c_id); } - for (std::set::const_iterator iit = - c_ids.begin(); iit != c_ids.end(); ++iit) { - content_t c_id = *iit; + for (content_t c_id : c_ids) { map[c_id].push_back(lbm_def); } } @@ -120,13 +116,12 @@ LBMContentMapping::lookup(content_t c) const LBMManager::~LBMManager() { - for (std::map::iterator it = - m_lbm_defs.begin(); it != m_lbm_defs.end(); ++it) { - delete it->second; + for (auto &m_lbm_def : m_lbm_defs) { + delete m_lbm_def.second; } - for (lbm_lookup_map::iterator it = m_lbm_lookup.begin(); - it != m_lbm_lookup.end(); ++it) { - (it->second).deleteContents(); + + for (auto &it : m_lbm_lookup) { + (it.second).deleteContents(); } } @@ -212,12 +207,11 @@ void LBMManager::loadIntroductionTimes(const std::string ×, LBMContentMapping &lbms_we_introduce_now = m_lbm_lookup[now]; LBMContentMapping &lbms_running_always = m_lbm_lookup[U32_MAX]; - for (std::map::iterator it = - m_lbm_defs.begin(); it != m_lbm_defs.end(); ++it) { - if (it->second->run_at_every_load) { - lbms_running_always.addLBM(it->second, gamedef); + for (auto &m_lbm_def : m_lbm_defs) { + if (m_lbm_def.second->run_at_every_load) { + lbms_running_always.addLBM(m_lbm_def.second, gamedef); } else { - lbms_we_introduce_now.addLBM(it->second, gamedef); + lbms_we_introduce_now.addLBM(m_lbm_def.second, gamedef); } } @@ -233,18 +227,16 @@ std::string LBMManager::createIntroductionTimesString() "attempted to query on non fully set up LBMManager"); std::ostringstream oss; - for (lbm_lookup_map::iterator it = m_lbm_lookup.begin(); - it != m_lbm_lookup.end(); ++it) { - u32 time = it->first; - std::vector &lbm_list = it->second.lbm_list; - for (std::vector::iterator iit = lbm_list.begin(); - iit != lbm_list.end(); ++iit) { + for (const auto &it : m_lbm_lookup) { + u32 time = it.first; + const std::vector &lbm_list = it.second.lbm_list; + for (const auto &lbm_def : lbm_list) { // Don't add if the LBM runs at every load, // then introducement time is hardcoded // and doesn't need to be stored - if ((*iit)->run_at_every_load) + if (lbm_def->run_at_every_load) continue; - oss << (*iit)->name << "~" << time << ";"; + oss << lbm_def->name << "~" << time << ";"; } } return oss.str(); @@ -272,9 +264,8 @@ void LBMManager::applyLBMs(ServerEnvironment *env, MapBlock *block, u32 stamp) iit->second.lookup(c); if (!lbm_list) continue; - for (std::vector::const_iterator iit = - lbm_list->begin(); iit != lbm_list->end(); ++iit) { - (*iit)->trigger(env, pos + pos_of_block, n); + for (auto lbmdef : *lbm_list) { + lbmdef->trigger(env, pos + pos_of_block, n); } } } -- 2.25.1