From 182f76cb870627fa403b5f74f1f4a0ca5e21970c Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Tue, 25 Apr 2023 13:45:09 -0700 Subject: [PATCH] Refactors constants out of Virtues.h. --- sbf-cpp/Character.cpp | 2 +- sbf-cpp/CharacterGenerator.cpp | 2 +- sbf-cpp/Virtues.cpp | 16 ++++++++++++++++ sbf-cpp/Virtues.h | 12 +----------- sbf-cpp/Virtues_test.cpp | 11 +++++++++++ 5 files changed, 30 insertions(+), 13 deletions(-) diff --git a/sbf-cpp/Character.cpp b/sbf-cpp/Character.cpp index f7b5c1a..8a8f4cb 100644 --- a/sbf-cpp/Character.cpp +++ b/sbf-cpp/Character.cpp @@ -257,7 +257,7 @@ int CharacterType::GetVirtueValue(int id) const { void CharacterType::FillVirtueValues(std::vector& values) const { values.clear(); - for (int id = 0; id <= kVirtuesCount; id++) { + for (int id = 0; id <= GetNumVirtues(); id++) { values.push_back(GetVirtueValue(id)); } } diff --git a/sbf-cpp/CharacterGenerator.cpp b/sbf-cpp/CharacterGenerator.cpp index acf5bf2..d3f94c2 100644 --- a/sbf-cpp/CharacterGenerator.cpp +++ b/sbf-cpp/CharacterGenerator.cpp @@ -295,7 +295,7 @@ void CGSpendAbilityPoint(CharacterType& ch) { void CGSpendVirtuePoint(CharacterType& ch) { MenuStyle ms; ms.show_cancel = true; - ms.cancel_item_id = kVirtuesCount + 1; + ms.cancel_item_id = GetNumVirtues() + 1; string prompt = "What virtue would you like to add 1 dot to?"; int id = ChooseStringIdWithValues(GetVirtueLabels(), ch.GetVirtueValues(), ms, prompt); if (id != ms.cancel_item_id) { diff --git a/sbf-cpp/Virtues.cpp b/sbf-cpp/Virtues.cpp index ea819b9..a4318ef 100644 --- a/sbf-cpp/Virtues.cpp +++ b/sbf-cpp/Virtues.cpp @@ -9,6 +9,18 @@ using std::string; using std::vector; } // End namespace +const std::string kVirtueUnknownLabel = ""; +const std::string kVirtueSelfControlLabel = "Self-Control"; +const std::string kVirtueCourageLabel = "Courage"; +const std::string kVirtueConscienceLabel = "Conscience"; +const int kVirtuesCount = 3; +const std::string kVirtueLabels[] = { + kVirtueUnknownLabel, + kVirtueSelfControlLabel, + kVirtueCourageLabel, + kVirtueConscienceLabel, +}; + const string GetVirtueLabel(int id) { if (id > 0 && id <= kVirtuesCount) { return kVirtueLabels[id]; @@ -28,4 +40,8 @@ vector GetVirtueLabels() { FillVirtueLabels(labels); return labels; } + +int GetNumVirtues() { + return kVirtuesCount; +} } // End namespace SBF diff --git a/sbf-cpp/Virtues.h b/sbf-cpp/Virtues.h index 4138377..b0ff209 100644 --- a/sbf-cpp/Virtues.h +++ b/sbf-cpp/Virtues.h @@ -16,20 +16,9 @@ */ namespace SBF { const int kVirtuePoints = 7; -const std::string kVirtueUnknownLabel = ""; const int kVirtueSelfControlId = 1; -const std::string kVirtueSelfControlLabel = "Self-Control"; const int kVirtueCourageId = 2; -const std::string kVirtueCourageLabel = "Courage"; const int kVirtueConscienceId = 3; -const std::string kVirtueConscienceLabel = "Conscience"; -const int kVirtuesCount = 3; -const std::string kVirtueLabels[] = { - kVirtueUnknownLabel, - kVirtueSelfControlLabel, - kVirtueCourageLabel, - kVirtueConscienceLabel, -}; /// @brief Gets the label for virtue with the specified id. /// @param virtue_id The id of the virtue to find. @@ -41,6 +30,7 @@ const std::string GetVirtueLabel(int virtue_id); void FillVirtueLabels(std::vector& virtue_labels); std::vector GetVirtueLabels(); +int GetNumVirtues(); } // End namespace SBF /** @}*/ diff --git a/sbf-cpp/Virtues_test.cpp b/sbf-cpp/Virtues_test.cpp index c552e39..82ba7bd 100644 --- a/sbf-cpp/Virtues_test.cpp +++ b/sbf-cpp/Virtues_test.cpp @@ -13,6 +13,17 @@ using namespace Test; using namespace std; } // End namespace +const std::string kVirtueUnknownLabel = ""; +const std::string kVirtueSelfControlLabel = "Self-Control"; +const std::string kVirtueCourageLabel = "Courage"; +const std::string kVirtueConscienceLabel = "Conscience"; +const std::string kVirtueLabels[] = { + kVirtueUnknownLabel, + kVirtueSelfControlLabel, + kVirtueCourageLabel, + kVirtueConscienceLabel, +}; + TestResults test_GetVirtueLabel() { return execute_suite(make_test_suite( "SBF::GetVirtueLabel",