From 40eb2c55fdc74232a700e76399feb3e8d5d69158 Mon Sep 17 00:00:00 2001 From: Ted John Date: Wed, 22 Feb 2017 17:58:50 +0000 Subject: [PATCH] Reduce duplicated code in IniReader --- src/openrct2/config/IniReader.cpp | 42 ++++++++++++++----------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/src/openrct2/config/IniReader.cpp b/src/openrct2/config/IniReader.cpp index 4577deda72..4df1ee9e4d 100644 --- a/src/openrct2/config/IniReader.cpp +++ b/src/openrct2/config/IniReader.cpp @@ -93,49 +93,45 @@ public: bool GetBoolean(const std::string &name, bool defaultValue) const override { - auto it = _values.find(name); - if (it == _values.end()) + bool result = defaultValue; + std::string value; + if (TryGetString(name, &value)) { - return defaultValue; + result = String::Equals(value, "true", true); } - - std::string value = it->second; - return String::Equals(value, "true", true); + return result; } sint32 GetSint32(const std::string &name, sint32 defaultValue) const override { - auto it = _values.find(name); - if (it == _values.end()) + sint32 result = defaultValue; + std::string value; + if (TryGetString(name, &value)) { - return defaultValue; + result = std::stoi(value); } - - std::string value = it->second; - return std::stoi(value); + return result; } float GetFloat(const std::string &name, float defaultValue) const override { - auto it = _values.find(name); - if (it == _values.end()) + float result = defaultValue; + std::string value; + if (TryGetString(name, &value)) { - return defaultValue; + result = std::stof(value); } - - std::string value = it->second; - return std::stof(value); + return result; } std::string GetString(const std::string &name, const std::string &defaultValue) const override { - auto it = _values.find(name); - if (it == _values.end()) + std::string result; + if (TryGetString(name, &result)) { - return defaultValue; + result = defaultValue; } - - return it->second; + return result; } bool TryGetString(const std::string &name, std::string * outValue) const override