diff options
Diffstat (limited to 'src/Generating')
-rw-r--r-- | src/Generating/VerticalLimit.cpp | 63 | ||||
-rw-r--r-- | src/Generating/VerticalStrategy.cpp | 61 |
2 files changed, 65 insertions, 59 deletions
diff --git a/src/Generating/VerticalLimit.cpp b/src/Generating/VerticalLimit.cpp index 0d27c85bf..f6b1b456c 100644 --- a/src/Generating/VerticalLimit.cpp +++ b/src/Generating/VerticalLimit.cpp @@ -30,36 +30,39 @@ If a_LogWarnings is true, outputs failure reasons to console. The range is returned in a_Min and a_Max. If no value is in the string, both values are left unchanged. If only the minimum is in the string, it is assigned to both a_Min and a_Max. */ -static bool ParseRange(const AString & a_Params, int & a_Min, int & a_Max, bool a_LogWarnings) +namespace VerticalLimit { - auto params = StringSplitAndTrim(a_Params, "|"); - if (params.size() == 0) + static bool ParseRange(const AString & a_Params, int & a_Min, int & a_Max, bool a_LogWarnings) { - // No params, generate directly on top: - return true; - } - if (!StringToInteger(params[0], a_Min)) - { - // Failed to parse the min rel height: - CONDWARNING(a_LogWarnings, "Cannot parse minimum height from string \"%s\"!", params[0].c_str()); - return false; - } - if (params.size() == 1) - { - // Only one param was given, there's no range - a_Max = a_Min; + auto params = StringSplitAndTrim(a_Params, "|"); + if (params.size() == 0) + { + // No params, generate directly on top: + return true; + } + if (!StringToInteger(params[0], a_Min)) + { + // Failed to parse the min rel height: + CONDWARNING(a_LogWarnings, "Cannot parse minimum height from string \"%s\"!", params[0].c_str()); + return false; + } + if (params.size() == 1) + { + // Only one param was given, there's no range + a_Max = a_Min; + return true; + } + if (!StringToInteger(params[1], a_Max)) + { + CONDWARNING(a_LogWarnings, "Cannot parse maximum height from string \"%s\"!", params[1].c_str()); + return false; + } + if (a_Max < a_Min) + { + std::swap(a_Max, a_Min); + } return true; } - if (!StringToInteger(params[1], a_Max)) - { - CONDWARNING(a_LogWarnings, "Cannot parse maximum height from string \"%s\"!", params[1].c_str()); - return false; - } - if (a_Max < a_Min) - { - std::swap(a_Max, a_Min); - } - return true; } @@ -144,7 +147,7 @@ public: // Parameters: "<MinBlocksAbove>|<MaxBlocksAbove>", both optional m_MinBlocksAbove = 0; m_MaxBlocksAbove = 0; - return ParseRange(a_Params, m_MinBlocksAbove, m_MaxBlocksAbove, a_LogWarnings); + return VerticalLimit::ParseRange(a_Params, m_MinBlocksAbove, m_MaxBlocksAbove, a_LogWarnings); } @@ -191,7 +194,7 @@ public: // Parameters: "<MinBlocksAbove>|<MaxBlocksAbove>", both optional m_MinBlocksAbove = 0; m_MaxBlocksAbove = 0; - return ParseRange(a_Params, m_MinBlocksAbove, m_MaxBlocksAbove, a_LogWarnings); + return VerticalLimit::ParseRange(a_Params, m_MinBlocksAbove, m_MaxBlocksAbove, a_LogWarnings); } @@ -275,7 +278,7 @@ public: // Parameters: "<MinBlocksBelow>|<MaxBlocksBelow>", both optional m_MinBlocksBelow = 0; m_MaxBlocksBelow = 0; - return ParseRange(a_Params, m_MinBlocksBelow, m_MaxBlocksBelow, a_LogWarnings); + return VerticalLimit::ParseRange(a_Params, m_MinBlocksBelow, m_MaxBlocksBelow, a_LogWarnings); } @@ -321,7 +324,7 @@ public: // Parameters: "<MinBlocksBelow>|<MaxBlocksBelow>", both optional m_MinBlocksBelow = 0; m_MaxBlocksBelow = 0; - return ParseRange(a_Params, m_MinBlocksBelow, m_MaxBlocksBelow, a_LogWarnings); + return VerticalLimit::ParseRange(a_Params, m_MinBlocksBelow, m_MaxBlocksBelow, a_LogWarnings); } diff --git a/src/Generating/VerticalStrategy.cpp b/src/Generating/VerticalStrategy.cpp index 6ca7cec9d..0651958f9 100644 --- a/src/Generating/VerticalStrategy.cpp +++ b/src/Generating/VerticalStrategy.cpp @@ -38,37 +38,40 @@ static const int SEED_OFFSET = 135; Returns true if successful, false on failure. If a_LogWarnings is true, outputs failure reasons to console. The range is returned in a_Min and a_Range, they are left unchanged if the range value is not present in the string. */ -static bool ParseRange(const AString & a_Params, int & a_Min, int & a_Range, bool a_LogWarnings) +namespace VerticalStrategy { - auto params = StringSplitAndTrim(a_Params, "|"); - if (params.size() == 0) + static bool ParseRange(const AString & a_Params, int & a_Min, int & a_Range, bool a_LogWarnings) { - // No params, generate directly on top: - return true; - } - if (!StringToInteger(params[0], a_Min)) - { - // Failed to parse the min rel height: - CONDWARNING(a_LogWarnings, "Cannot parse minimum height from string \"%s\"!", params[0].c_str()); - return false; - } - if (params.size() == 1) - { - // Only one param was given, there's no range + auto params = StringSplitAndTrim(a_Params, "|"); + if (params.size() == 0) + { + // No params, generate directly on top: + return true; + } + if (!StringToInteger(params[0], a_Min)) + { + // Failed to parse the min rel height: + CONDWARNING(a_LogWarnings, "Cannot parse minimum height from string \"%s\"!", params[0].c_str()); + return false; + } + if (params.size() == 1) + { + // Only one param was given, there's no range + return true; + } + int maxHeight = a_Min; + if (!StringToInteger(params[1], maxHeight)) + { + CONDWARNING(a_LogWarnings, "Cannot parse maximum height from string \"%s\"!", params[1].c_str()); + return false; + } + if (maxHeight < a_Min) + { + std::swap(maxHeight, a_Min); + } + a_Range = maxHeight - a_Min + 1; return true; } - int maxHeight = a_Min; - if (!StringToInteger(params[1], maxHeight)) - { - CONDWARNING(a_LogWarnings, "Cannot parse maximum height from string \"%s\"!", params[1].c_str()); - return false; - } - if (maxHeight < a_Min) - { - std::swap(maxHeight, a_Min); - } - a_Range = maxHeight - a_Min + 1; - return true; } @@ -202,7 +205,7 @@ public: // Params: "<MinRelativeHeight>|<MaxRelativeHeight>", all optional m_MinRelHeight = 0; m_RelHeightRange = 1; - return ParseRange(a_Params, m_MinRelHeight, m_RelHeightRange, a_LogWarnings); + return VerticalStrategy::ParseRange(a_Params, m_MinRelHeight, m_RelHeightRange, a_LogWarnings); } @@ -258,7 +261,7 @@ public: // Params: "<MinRelativeHeight>|<MaxRelativeHeight>", all optional m_MinRelHeight = 0; m_RelHeightRange = 1; - return ParseRange(a_Params, m_MinRelHeight, m_RelHeightRange, a_LogWarnings); + return VerticalStrategy::ParseRange(a_Params, m_MinRelHeight, m_RelHeightRange, a_LogWarnings); } |