Refactors constants out of Disciplines.h.
This commit is contained in:
		| @@ -18,6 +18,7 @@ using std::vector; | |||||||
|  |  | ||||||
| const int kBackgroundPoints = 5; | const int kBackgroundPoints = 5; | ||||||
| const int kInitialGeneration = 13; | const int kInitialGeneration = 13; | ||||||
|  | const int kDisciplinePoints = 3; | ||||||
|  |  | ||||||
| CharacterType::CharacterType() { | CharacterType::CharacterType() { | ||||||
|   // Scalars |   // Scalars | ||||||
| @@ -67,7 +68,7 @@ CharacterType::CharacterType() { | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   // Disciplines |   // Disciplines | ||||||
|   for (int id = 0; id <= kDisciplinesCount; id++) { |   for (int id = 0; id <= GetNumDisciplines(); id++) { | ||||||
|     SetDisciplineValue(id, 0); |     SetDisciplineValue(id, 0); | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @@ -212,7 +213,7 @@ void CharacterType::FillDisciplineValues(std::vector<int>& values) const { | |||||||
|   // TODO: This method sucks, but was needed in QBasic. |   // TODO: This method sucks, but was needed in QBasic. | ||||||
|   values.clear(); |   values.clear(); | ||||||
|   values.push_back(0);  // To pad the indexes. |   values.push_back(0);  // To pad the indexes. | ||||||
|   for (int id = 1; id <= kDisciplinesCount; id++) { |   for (int id = 1; id <= GetNumDisciplines(); id++) { | ||||||
|     values.push_back(GetDisciplineValue(id)); |     values.push_back(GetDisciplineValue(id)); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -13,6 +13,7 @@ | |||||||
| #include "Utils.h" | #include "Utils.h" | ||||||
| #include "sbf-cpp/Abilities.h" | #include "sbf-cpp/Abilities.h" | ||||||
| #include "sbf-cpp/Backgrounds.h" | #include "sbf-cpp/Backgrounds.h" | ||||||
|  | #include "sbf-cpp/Disciplines.h" | ||||||
|  |  | ||||||
| namespace SBF { | namespace SBF { | ||||||
| namespace { | namespace { | ||||||
| @@ -209,7 +210,7 @@ void CGSpendDisciplinePoint(CharacterType& ch) { | |||||||
|   MaybeClearScreen(); |   MaybeClearScreen(); | ||||||
|   MenuStyle ms; |   MenuStyle ms; | ||||||
|   ms.show_cancel = true; |   ms.show_cancel = true; | ||||||
|   ms.cancel_item_id = kDisciplinesCount + 1; |   ms.cancel_item_id = GetNumDisciplines() + 1; | ||||||
|   vector<int> values = ch.GetDisciplineValues(); |   vector<int> values = ch.GetDisciplineValues(); | ||||||
|   vector<string> labels; |   vector<string> labels; | ||||||
|   FillDisciplineLabels(labels); |   FillDisciplineLabels(labels); | ||||||
| @@ -345,7 +346,7 @@ void ShowCharacterSheet(CharacterType& ch) { | |||||||
|   const int kRightColumnWidth = 37; |   const int kRightColumnWidth = 37; | ||||||
|   vector<string> discipline_strings; |   vector<string> discipline_strings; | ||||||
|   size_t index; |   size_t index; | ||||||
|   for (index = 1; index <= kDisciplinesCount; index++) { |   for (index = 1; index <= GetNumDisciplines(); index++) { | ||||||
|     int value = ch.GetDisciplineValue(index); |     int value = ch.GetDisciplineValue(index); | ||||||
|     if (value > 0) { |     if (value > 0) { | ||||||
|       string suffix = ""; |       string suffix = ""; | ||||||
|   | |||||||
| @@ -7,6 +7,59 @@ namespace SBF { | |||||||
| using std::string; | using std::string; | ||||||
| using std::vector; | using std::vector; | ||||||
|  |  | ||||||
|  | const std::string kDisciplineAnimalismLabel = "Animalism"; | ||||||
|  | const std::string kDisciplineAuspexLabel = "Auspex"; | ||||||
|  | const std::string kDisciplineBardoLabel = "Bardo"; | ||||||
|  | const std::string kDisciplineCelerityLabel = "Celerity"; | ||||||
|  | const std::string kDisciplineChimestryLabel = "Chimestry"; | ||||||
|  | const std::string kDisciplineDementationLabel = "Dementation"; | ||||||
|  | const std::string kDisciplineDominateLabel = "Dominate"; | ||||||
|  | const std::string kDisciplineFortitudeLabel = "Fortitude"; | ||||||
|  | const std::string kDisciplineMelpomineeLabel = "Melpominee"; | ||||||
|  | const std::string kDisciplineMortisLabel = "Mortis"; | ||||||
|  | const std::string kDisciplineMytherceriaLabel = "Mytherceria"; | ||||||
|  | const std::string kDisciplineNecromancyLabel = "Necromancy"; | ||||||
|  | const std::string kDisciplineObeahLabel = "Obeah"; | ||||||
|  | const std::string kDisciplineObfuscateLabel = "Obfuscate"; | ||||||
|  | const std::string kDisciplineObtenebrationLabel = "Obtenebration"; | ||||||
|  | const std::string kDisciplinePotenceLabel = "Potence"; | ||||||
|  | const std::string kDisciplinePresenceLabel = "Presence"; | ||||||
|  | const std::string kDisciplineProteanLabel = "Protean"; | ||||||
|  | const std::string kDisciplineQuietusLabel = "Quietus"; | ||||||
|  | const std::string kDisciplineSerpentisLabel = "Serpentis"; | ||||||
|  | const std::string kDisciplineSpiritusLabel = "Spiritus"; | ||||||
|  | const std::string kDisciplineThanantosisLabel = "Thanantosis"; | ||||||
|  | const std::string kDisciplineThaumaturgyLabel = "Thaumaturgy"; | ||||||
|  | const std::string kDisciplineVicissitudeLabel = "Vicissitude"; | ||||||
|  | const int kDisciplinesCount = 24; | ||||||
|  | const std::string kDisciplines[] = { | ||||||
|  |     "", | ||||||
|  |     kDisciplineAnimalismLabel, | ||||||
|  |     kDisciplineAuspexLabel, | ||||||
|  |     kDisciplineBardoLabel, | ||||||
|  |     kDisciplineCelerityLabel, | ||||||
|  |     kDisciplineChimestryLabel, | ||||||
|  |     kDisciplineDementationLabel, | ||||||
|  |     kDisciplineDominateLabel, | ||||||
|  |     kDisciplineFortitudeLabel, | ||||||
|  |     kDisciplineMelpomineeLabel, | ||||||
|  |     kDisciplineMortisLabel, | ||||||
|  |     kDisciplineMytherceriaLabel, | ||||||
|  |     kDisciplineNecromancyLabel, | ||||||
|  |     kDisciplineObeahLabel, | ||||||
|  |     kDisciplineObfuscateLabel, | ||||||
|  |     kDisciplineObtenebrationLabel, | ||||||
|  |     kDisciplinePotenceLabel, | ||||||
|  |     kDisciplinePresenceLabel, | ||||||
|  |     kDisciplineProteanLabel, | ||||||
|  |     kDisciplineQuietusLabel, | ||||||
|  |     kDisciplineSerpentisLabel, | ||||||
|  |     kDisciplineSpiritusLabel, | ||||||
|  |     kDisciplineThanantosisLabel, | ||||||
|  |     kDisciplineThaumaturgyLabel, | ||||||
|  |     kDisciplineVicissitudeLabel, | ||||||
|  | }; | ||||||
|  |  | ||||||
| string GetDisciplineLabel(int disciplineId) { | string GetDisciplineLabel(int disciplineId) { | ||||||
|   if (disciplineId > 0 && disciplineId <= kDisciplinesCount) { |   if (disciplineId > 0 && disciplineId <= kDisciplinesCount) { | ||||||
|     return kDisciplines[disciplineId]; |     return kDisciplines[disciplineId]; | ||||||
| @@ -21,4 +74,8 @@ void FillDisciplineLabels(vector<string>& labels) { | |||||||
|     labels.push_back(GetDisciplineLabel(id)); |     labels.push_back(GetDisciplineLabel(id)); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | int GetNumDisciplines() { | ||||||
|  |   return kDisciplinesCount; | ||||||
|  | } | ||||||
| }  // End namespace SBF | }  // End namespace SBF | ||||||
|   | |||||||
| @@ -16,83 +16,31 @@ | |||||||
|  * @{ |  * @{ | ||||||
|  */ |  */ | ||||||
| namespace SBF { | namespace SBF { | ||||||
| const int kDisciplinePoints = 3; |  | ||||||
| const int kDisciplineAnimalismId = 1; | const int kDisciplineAnimalismId = 1; | ||||||
| const std::string kDisciplineAnimalismLabel = "Animalism"; |  | ||||||
| const int kDisciplineAuspexId = 2; | const int kDisciplineAuspexId = 2; | ||||||
| const std::string kDisciplineAuspexLabel = "Auspex"; |  | ||||||
| const int kDisciplineBardoId = 3; | const int kDisciplineBardoId = 3; | ||||||
| const std::string kDisciplineBardoLabel = "Bardo"; |  | ||||||
| const int kDisciplineCelerityId = 4; | const int kDisciplineCelerityId = 4; | ||||||
| const std::string kDisciplineCelerityLabel = "Celerity"; |  | ||||||
| const int kDisciplineChimestryId = 5; | const int kDisciplineChimestryId = 5; | ||||||
| const std::string kDisciplineChimestryLabel = "Chimestry"; |  | ||||||
| const int kDisciplineDementationId = 6; | const int kDisciplineDementationId = 6; | ||||||
| const std::string kDisciplineDementationLabel = "Dementation"; |  | ||||||
| const int kDisciplineDominateId = 7; | const int kDisciplineDominateId = 7; | ||||||
| const std::string kDisciplineDominateLabel = "Dominate"; |  | ||||||
| const int kDisciplineFortitudeId = 8; | const int kDisciplineFortitudeId = 8; | ||||||
| const std::string kDisciplineFortitudeLabel = "Fortitude"; |  | ||||||
| const int kDisciplineMelpomineeId = 9; | const int kDisciplineMelpomineeId = 9; | ||||||
| const std::string kDisciplineMelpomineeLabel = "Melpominee"; |  | ||||||
| const int kDisciplineMortisId = 10; | const int kDisciplineMortisId = 10; | ||||||
| const std::string kDisciplineMortisLabel = "Mortis"; |  | ||||||
| const int kDisciplineMytherceriaId = 11; | const int kDisciplineMytherceriaId = 11; | ||||||
| const std::string kDisciplineMytherceriaLabel = "Mytherceria"; |  | ||||||
| const int kDisciplineNecromancyId = 12; | const int kDisciplineNecromancyId = 12; | ||||||
| const std::string kDisciplineNecromancyLabel = "Necromancy"; |  | ||||||
| const int kDisciplineObeahId = 13; | const int kDisciplineObeahId = 13; | ||||||
| const std::string kDisciplineObeahLabel = "Obeah"; |  | ||||||
| const int kDisciplineObfuscateId = 14; | const int kDisciplineObfuscateId = 14; | ||||||
| const std::string kDisciplineObfuscateLabel = "Obfuscate"; |  | ||||||
| const int kDisciplineObtenebrationId = 15; | const int kDisciplineObtenebrationId = 15; | ||||||
| const std::string kDisciplineObtenebrationLabel = "Obtenebration"; |  | ||||||
| const int kDisciplinePotenceId = 16; | const int kDisciplinePotenceId = 16; | ||||||
| const std::string kDisciplinePotenceLabel = "Potence"; |  | ||||||
| const int kDisciplinePresenceId = 17; | const int kDisciplinePresenceId = 17; | ||||||
| const std::string kDisciplinePresenceLabel = "Presence"; |  | ||||||
| const int kDisciplineProteanId = 18; | const int kDisciplineProteanId = 18; | ||||||
| const std::string kDisciplineProteanLabel = "Protean"; |  | ||||||
| const int kDisciplineQuietusId = 19; | const int kDisciplineQuietusId = 19; | ||||||
| const std::string kDisciplineQuietusLabel = "Quietus"; |  | ||||||
| const int kDisciplineSerpentisId = 20; | const int kDisciplineSerpentisId = 20; | ||||||
| const std::string kDisciplineSerpentisLabel = "Serpentis"; |  | ||||||
| const int kDisciplineSpiritusId = 21; | const int kDisciplineSpiritusId = 21; | ||||||
| const std::string kDisciplineSpiritusLabel = "Spiritus"; |  | ||||||
| const int kDisciplineThanantosisId = 22; | const int kDisciplineThanantosisId = 22; | ||||||
| const std::string kDisciplineThanantosisLabel = "Thanantosis"; |  | ||||||
| const int kDisciplineThaumaturgyId = 23; | const int kDisciplineThaumaturgyId = 23; | ||||||
| const std::string kDisciplineThaumaturgyLabel = "Thaumaturgy"; |  | ||||||
| const int kDisciplineVicissitudeId = 24; | const int kDisciplineVicissitudeId = 24; | ||||||
| const std::string kDisciplineVicissitudeLabel = "Vicissitude"; |  | ||||||
| const int kDisciplinesCount = 24; |  | ||||||
| const std::string kDisciplines[] = { |  | ||||||
|     "", |  | ||||||
|     kDisciplineAnimalismLabel, |  | ||||||
|     kDisciplineAuspexLabel, |  | ||||||
|     kDisciplineBardoLabel, |  | ||||||
|     kDisciplineCelerityLabel, |  | ||||||
|     kDisciplineChimestryLabel, |  | ||||||
|     kDisciplineDementationLabel, |  | ||||||
|     kDisciplineDominateLabel, |  | ||||||
|     kDisciplineFortitudeLabel, |  | ||||||
|     kDisciplineMelpomineeLabel, |  | ||||||
|     kDisciplineMortisLabel, |  | ||||||
|     kDisciplineMytherceriaLabel, |  | ||||||
|     kDisciplineNecromancyLabel, |  | ||||||
|     kDisciplineObeahLabel, |  | ||||||
|     kDisciplineObfuscateLabel, |  | ||||||
|     kDisciplineObtenebrationLabel, |  | ||||||
|     kDisciplinePotenceLabel, |  | ||||||
|     kDisciplinePresenceLabel, |  | ||||||
|     kDisciplineProteanLabel, |  | ||||||
|     kDisciplineQuietusLabel, |  | ||||||
|     kDisciplineSerpentisLabel, |  | ||||||
|     kDisciplineSpiritusLabel, |  | ||||||
|     kDisciplineThanantosisLabel, |  | ||||||
|     kDisciplineThaumaturgyLabel, |  | ||||||
|     kDisciplineVicissitudeLabel, |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| /// @brief Gets the label for a discipline with a specific id. | /// @brief Gets the label for a discipline with a specific id. | ||||||
| /// @param discipline_id The id of the discipline to get the label for. | /// @param discipline_id The id of the discipline to get the label for. | ||||||
| @@ -102,6 +50,8 @@ std::string GetDisciplineLabel(int discipline_id); | |||||||
| /// @brief Fills the provided vector with all of the valid discipline labels. | /// @brief Fills the provided vector with all of the valid discipline labels. | ||||||
| /// @param discipline_labels The vector to fill. It will be cleared first. | /// @param discipline_labels The vector to fill. It will be cleared first. | ||||||
| void FillDisciplineLabels(std::vector<std::string>& discipline_labels); | void FillDisciplineLabels(std::vector<std::string>& discipline_labels); | ||||||
|  |  | ||||||
|  | int GetNumDisciplines(); | ||||||
| }  // End namespace SBF | }  // End namespace SBF | ||||||
|  |  | ||||||
| /** @}*/ | /** @}*/ | ||||||
|   | |||||||
| @@ -52,14 +52,10 @@ TestResults test_FillDisciplineLabels() { | |||||||
|   auto fnToTest = []() -> string { |   auto fnToTest = []() -> string { | ||||||
|     ostringstream error_message; |     ostringstream error_message; | ||||||
|     vector<string> expected = { |     vector<string> expected = { | ||||||
|         kDisciplineAnimalismLabel,   kDisciplineAuspexLabel,      kDisciplineBardoLabel, |         "Animalism", "Auspex",    "Bardo",         "Celerity",    "Chimestry",   "Dementation", | ||||||
|         kDisciplineCelerityLabel,    kDisciplineChimestryLabel,   kDisciplineDementationLabel, |         "Dominate",  "Fortitude", "Melpominee",    "Mortis",      "Mytherceria", "Necromancy", | ||||||
|         kDisciplineDominateLabel,    kDisciplineFortitudeLabel,   kDisciplineMelpomineeLabel, |         "Obeah",     "Obfuscate", "Obtenebration", "Potence",     "Presence",    "Protean", | ||||||
|         kDisciplineMortisLabel,      kDisciplineMytherceriaLabel, kDisciplineNecromancyLabel, |         "Quietus",   "Serpentis", "Spiritus",      "Thanantosis", "Thaumaturgy", "Vicissitude", | ||||||
|         kDisciplineObeahLabel,       kDisciplineObfuscateLabel,   kDisciplineObtenebrationLabel, |  | ||||||
|         kDisciplinePotenceLabel,     kDisciplinePresenceLabel,    kDisciplineProteanLabel, |  | ||||||
|         kDisciplineQuietusLabel,     kDisciplineSerpentisLabel,   kDisciplineSpiritusLabel, |  | ||||||
|         kDisciplineThanantosisLabel, kDisciplineThaumaturgyLabel, kDisciplineVicissitudeLabel, |  | ||||||
|     }; |     }; | ||||||
|     vector<string> actual = {"This should be removed."}; |     vector<string> actual = {"This should be removed."}; | ||||||
|     FillDisciplineLabels(actual); |     FillDisciplineLabels(actual); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user