1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-15 00:05:02 +02:00

vcmi: use std::optional

This commit is contained in:
Konstantin
2023-04-16 20:42:56 +03:00
parent 0d35606a44
commit 7a5775a9f9
135 changed files with 552 additions and 585 deletions

View File

@ -276,35 +276,35 @@ const std::vector<CTerrainViewPatternConfig::TVPVector> & CTerrainViewPatternCon
return iter->second;
}
boost::optional<const TerrainViewPattern &> CTerrainViewPatternConfig::getTerrainViewPatternById(const std::string & patternId, const std::string & id) const
std::optional<const std::reference_wrapper<const TerrainViewPattern>> CTerrainViewPatternConfig::getTerrainViewPatternById(const std::string & patternId, const std::string & id) const
{
auto iter = terrainViewPatterns.find(patternId);
const std::vector<TVPVector> & groupPatterns = (iter == terrainViewPatterns.end()) ? terrainViewPatterns.at("normal") : iter->second;
const auto & groupPatterns = (iter == terrainViewPatterns.end()) ? terrainViewPatterns.at("normal") : iter->second;
for (const TVPVector & patternFlips : groupPatterns)
for(const auto & patternFlips : groupPatterns)
{
const TerrainViewPattern & pattern = patternFlips.front();
const auto & pattern = patternFlips.front();
if (id == pattern.id)
{
return boost::optional<const TerrainViewPattern&>(pattern);
return {std::ref(pattern)};
}
}
return boost::optional<const TerrainViewPattern&>();
return {};
}
boost::optional<const CTerrainViewPatternConfig::TVPVector &> CTerrainViewPatternConfig::getTerrainViewPatternsById(TerrainId terrain, const std::string & id) const
std::optional<const std::reference_wrapper<const CTerrainViewPatternConfig::TVPVector>> CTerrainViewPatternConfig::getTerrainViewPatternsById(TerrainId terrain, const std::string & id) const
{
const std::vector<TVPVector> & groupPatterns = getTerrainViewPatterns(terrain);
for (const TVPVector & patternFlips : groupPatterns)
const auto & groupPatterns = getTerrainViewPatterns(terrain);
for(const auto & patternFlips : groupPatterns)
{
const TerrainViewPattern & pattern = patternFlips.front();
const auto & pattern = patternFlips.front();
if (id == pattern.id)
{
return boost::optional<const TVPVector&>(patternFlips);
return {std::ref(patternFlips)};
}
}
return boost::optional<const TVPVector&>();
return {};
}