Adds GetBackgroundValues to CharacterType.

Renames a bunch of parameters to simplify them.
This commit is contained in:
2023-04-24 23:36:53 -07:00
parent 005fcf7f56
commit df1c4c0727
2 changed files with 125 additions and 119 deletions

View File

@@ -1,4 +1,4 @@
#include "Character.h" #include "Character.h"
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
@@ -41,18 +41,18 @@ CharacterType::CharacterType() {
// Arrays/Objects // Arrays/Objects
// Abilities (Talents/Skills/Knowledges) // Abilities (Talents/Skills/Knowledges)
for (int groupId = 1; groupId <= kAbilitiesCount; groupId++) { for (int group_id = 1; group_id <= kAbilitiesCount; group_id++) {
const int numAbilities = GetNumItemsForAbilityGroup(groupId); const int num_abilities = GetNumItemsForAbilityGroup(group_id);
for (int abilityId = 1; abilityId <= numAbilities; abilityId++) { for (int id = 1; id <= num_abilities; id++) {
SetAbilityValue(groupId, abilityId, 0); SetAbilityValue(group_id, id, 0);
} }
} }
// Attributes // Attributes
for (int groupId = 1; groupId <= kAttributeGroupsCount; groupId++) { for (int group_id = 1; group_id <= kAttributeGroupsCount; group_id++) {
const int numAttributes = GetNumAttributesInGroup(groupId); const int numAttributes = GetNumAttributesInGroup(group_id);
for (int attributeId = 1; attributeId <= numAttributes; attributeId++) { for (int id = 1; id <= numAttributes; id++) {
SetAttributeValue(groupId, attributeId, 1); SetAttributeValue(group_id, id, 1);
} }
} }
@@ -67,8 +67,8 @@ CharacterType::CharacterType() {
} }
} }
void CharacterType::SetDisciplineValue(int disciplineId, int value) { void CharacterType::SetDisciplineValue(int id, int value) {
switch (disciplineId) { switch (id) {
case kDisciplineAnimalismId: case kDisciplineAnimalismId:
discipline_animalism = value; discipline_animalism = value;
break; break;
@@ -144,8 +144,8 @@ void CharacterType::SetDisciplineValue(int disciplineId, int value) {
} }
} }
int CharacterType::GetDisciplineValue(int disciplineId) const { int CharacterType::GetDisciplineValue(int id) const {
switch (disciplineId) { switch (id) {
case kDisciplineAnimalismId: case kDisciplineAnimalismId:
return discipline_animalism; return discipline_animalism;
case kDisciplineAuspexId: case kDisciplineAuspexId:
@@ -222,8 +222,8 @@ int GetVirtuePoints() {
return kVirtuePoints; return kVirtuePoints;
} }
void CharacterType::SetVirtueValue(int virtueId, int value) { void CharacterType::SetVirtueValue(int id, int value) {
switch (virtueId) { switch (id) {
case kVirtueSelfControlId: case kVirtueSelfControlId:
selfControl = value; selfControl = value;
break; break;
@@ -236,8 +236,8 @@ void CharacterType::SetVirtueValue(int virtueId, int value) {
} }
} }
int CharacterType::GetVirtueValue(int virtueId) const { int CharacterType::GetVirtueValue(int id) const {
switch (virtueId) { switch (id) {
case kVirtueSelfControlId: case kVirtueSelfControlId:
return selfControl; return selfControl;
case kVirtueCourageId: case kVirtueCourageId:
@@ -249,20 +249,20 @@ int CharacterType::GetVirtueValue(int virtueId) const {
} }
} }
void CharacterType::FillVirtueValues(std::vector<int>& virtueValues) const { void CharacterType::FillVirtueValues(std::vector<int>& values) const {
// TODO: This method sucks, but was needed in QBasic. // TODO: This method sucks, but was needed in QBasic.
virtueValues.clear(); values.clear();
for (int id = 0; id <= kVirtuesCount; id++) { for (int id = 0; id <= kVirtuesCount; id++) {
virtueValues[id] = GetVirtueValue(id); values[id] = GetVirtueValue(id);
} }
} }
void CharacterType::FillAttributeValues(std::vector<int>& attributeValues, int attributeGroupId) const { void CharacterType::FillAttributeValues(std::vector<int>& values, int group_id) const {
// TODO: This method sucks, but was needed in QBasic. // TODO: This method sucks, but was needed in QBasic.
const int numAttributes = GetNumAttributesInGroup(attributeGroupId); const int numAttributes = GetNumAttributesInGroup(group_id);
attributeValues.clear(); values.clear();
for (int attributeId = 1; attributeId <= numAttributes; attributeId++) { for (int id = 1; id <= numAttributes; id++) {
attributeValues.push_back(GetAttributeValue(attributeGroupId, attributeId)); values.push_back(GetAttributeValue(group_id, id));
} }
} }
@@ -272,43 +272,43 @@ vector<int> CharacterType::GetAttributeValuesInGroup(int group_id) const {
return values; return values;
} }
void FillAttributeLabelsInGroup(std::vector<string> attributeLabels, int attributeGroupId) { void FillAttributeLabelsInGroup(std::vector<string> labels, int group_id) {
attributeLabels.clear(); labels.clear();
switch (attributeGroupId) { switch (group_id) {
case kAttributeGroupPhysicalId: case kAttributeGroupPhysicalId:
for (int attributeId = 0; attributeId <= kPhysicalAttributesCount; attributeId++) { for (int id = 0; id <= kPhysicalAttributesCount; id++) {
attributeLabels[attributeId] = kPhysicalAttributeLabels[attributeId]; labels.push_back(kPhysicalAttributeLabels[id]);
} }
break; break;
case kAttributeGroupSocialId: case kAttributeGroupSocialId:
for (int attributeId = 0; attributeId <= kSocialAttributesCount; attributeId++) { for (int id = 0; id <= kSocialAttributesCount; id++) {
attributeLabels[attributeId] = kSocialAttributeLabels[attributeId]; labels.push_back(kSocialAttributeLabels[id]);
} }
break; break;
case kAttributeGroupMentalId: case kAttributeGroupMentalId:
for (int attributeId = 0; attributeId <= kMentalAttributesCount; attributeId++) { for (int id = 0; id <= kMentalAttributesCount; id++) {
attributeLabels[attributeId] = kMentalAttributeLabels[attributeId]; labels.push_back(kMentalAttributeLabels[id]);
} }
break; break;
} }
} }
void FillAttributeAbbreviationsInGroup(std::vector<string> attributeAbbreviations, int attributeGroupId) { void FillAttributeAbbreviationsInGroup(std::vector<string> abbreviations, int group_id) {
attributeAbbreviations.clear(); abbreviations.clear();
switch (attributeGroupId) { switch (group_id) {
case kAttributeGroupPhysicalId: case kAttributeGroupPhysicalId:
for (int attributeId = 0; attributeId <= kPhysicalAttributesCount; attributeId++) { for (int id = 0; id <= kPhysicalAttributesCount; id++) {
attributeAbbreviations[attributeId] = kPhysicalAttributeLabelAbbreviations[attributeId]; abbreviations.push_back(kPhysicalAttributeLabelAbbreviations[id]);
} }
break; break;
case kAttributeGroupSocialId: case kAttributeGroupSocialId:
for (int attributeId = 0; attributeId <= kSocialAttributesCount; attributeId++) { for (int id = 0; id <= kSocialAttributesCount; id++) {
attributeAbbreviations[attributeId] = kSocialAttributeLabelAbbreviations[attributeId]; abbreviations.push_back(kSocialAttributeLabelAbbreviations[id]);
} }
break; break;
case kAttributeGroupMentalId: case kAttributeGroupMentalId:
for (int attributeId = 0; attributeId <= kMentalAttributesCount; attributeId++) { for (int id = 0; id <= kMentalAttributesCount; id++) {
attributeAbbreviations[attributeId] = kMentalAttributeLabelAbbreviations[attributeId]; abbreviations.push_back(kMentalAttributeLabelAbbreviations[id]);
} }
break; break;
} }
@@ -356,16 +356,16 @@ void CharacterType::SetMentalAttributeValue(int id, int value) {
} }
} }
void CharacterType::SetAttributeValue(int attributeGroupId, int attributeId, int value) { void CharacterType::SetAttributeValue(int group_id, int id, int value) {
switch (attributeGroupId) { switch (group_id) {
case kAttributeGroupPhysicalId: case kAttributeGroupPhysicalId:
SetPhysicalAttributeValue(attributeId, value); SetPhysicalAttributeValue(id, value);
break; break;
case kAttributeGroupSocialId: case kAttributeGroupSocialId:
SetSocialAttributeValue(attributeId, value); SetSocialAttributeValue(id, value);
break; break;
case kAttributeGroupMentalId: case kAttributeGroupMentalId:
SetMentalAttributeValue(attributeId, value); SetMentalAttributeValue(id, value);
break; break;
} }
} }
@@ -406,20 +406,20 @@ int CharacterType::GetMentalAttributeValue(int id) const {
return 0; return 0;
} }
int CharacterType::GetAttributeValue(int attributeGroupId, int attributeId) const { int CharacterType::GetAttributeValue(int group_id, int id) const {
switch (attributeGroupId) { switch (group_id) {
case kAttributeGroupPhysicalId: case kAttributeGroupPhysicalId:
return GetPhysicalAttributeValue(attributeId); return GetPhysicalAttributeValue(id);
case kAttributeGroupSocialId: case kAttributeGroupSocialId:
return GetSocialAttributeValue(attributeId); return GetSocialAttributeValue(id);
case kAttributeGroupMentalId: case kAttributeGroupMentalId:
return GetMentalAttributeValue(attributeId); return GetMentalAttributeValue(id);
} }
return 0; return 0;
} }
int GetAttributePointsForRank(int rankId) { int GetAttributePointsForRank(int id) {
switch (rankId) { switch (id) {
case kRankPrimaryId: case kRankPrimaryId:
return 7; return 7;
case kRankSecondaryId: case kRankSecondaryId:
@@ -430,34 +430,34 @@ int GetAttributePointsForRank(int rankId) {
return 0; return 0;
} }
void CharacterType::SetAbilityValue(int abilityGroupId, int abilityId, int value) { void CharacterType::SetAbilityValue(int group_id, int id, int value) {
switch (abilityGroupId) { switch (group_id) {
case kAbilityTalentsId: case kAbilityTalentsId:
SetTalentValue(abilityId, value); SetTalentValue(id, value);
break; break;
case kAbilitySkillsId: case kAbilitySkillsId:
SetSkillValue(abilityId, value); SetSkillValue(id, value);
break; break;
case kAbilityKnowledgesId: case kAbilityKnowledgesId:
SetKnowledgeValue(abilityId, value); SetKnowledgeValue(id, value);
break; break;
} }
} }
int CharacterType::GetAbilityValue(int abilityGroupId, int abilityId) const { int CharacterType::GetAbilityValue(int group_id, int id) const {
switch (abilityGroupId) { switch (group_id) {
case kAbilityTalentsId: case kAbilityTalentsId:
return GetTalentValue(abilityId); return GetTalentValue(id);
case kAbilityKnowledgesId: case kAbilityKnowledgesId:
return GetKnowledgeValue(abilityId); return GetKnowledgeValue(id);
case kAbilitySkillsId: case kAbilitySkillsId:
return GetSkillValue(abilityId); return GetSkillValue(id);
} }
return 0; return 0;
} }
int GetAbilityPointsForRank(int rankId) { int GetAbilityPointsForRank(int id) {
switch (rankId) { switch (id) {
case kRankPrimaryId: case kRankPrimaryId:
return 13; return 13;
case kRankSecondaryId: case kRankSecondaryId:
@@ -468,16 +468,16 @@ int GetAbilityPointsForRank(int rankId) {
return 0; return 0;
} }
void CharacterType::FillAbilityValues(std::vector<int>& abilityValues, int abilityGroupId) const { void CharacterType::FillAbilityValues(std::vector<int>& values, int group_id) const {
int numAbilities = GetNumItemsForAbilityGroup(abilityGroupId); int num_abilities = GetNumItemsForAbilityGroup(group_id);
abilityValues.clear(); values.clear();
for (int abilityId = 0; abilityId <= numAbilities; abilityId++) { for (int id = 0; id <= num_abilities; id++) {
abilityValues[abilityId] = GetAbilityValue(abilityGroupId, abilityId); values[id] = GetAbilityValue(group_id, id);
} }
} }
void CharacterType::SetTalentValue(int talentId, int value) { void CharacterType::SetTalentValue(int id, int value) {
switch (talentId) { switch (id) {
case kTalentActingId: case kTalentActingId:
talent_acting = value; talent_acting = value;
break; break;
@@ -511,8 +511,8 @@ void CharacterType::SetTalentValue(int talentId, int value) {
} }
} }
int CharacterType::GetTalentValue(int talentId) const { int CharacterType::GetTalentValue(int id) const {
switch (talentId) { switch (id) {
case kTalentActingId: case kTalentActingId:
return talent_acting; return talent_acting;
case kTalentAlertnessId: case kTalentAlertnessId:
@@ -537,8 +537,8 @@ int CharacterType::GetTalentValue(int talentId) const {
return 0; return 0;
} }
void CharacterType::SetSkillValue(int skillId, int value) { void CharacterType::SetSkillValue(int id, int value) {
switch (skillId) { switch (id) {
case kSkillAnimalKenId: case kSkillAnimalKenId:
skill_animalKen = value; skill_animalKen = value;
break; break;
@@ -572,8 +572,8 @@ void CharacterType::SetSkillValue(int skillId, int value) {
} }
} }
int CharacterType::GetSkillValue(int skillId) const { int CharacterType::GetSkillValue(int id) const {
switch (skillId) { switch (id) {
case kSkillAnimalKenId: case kSkillAnimalKenId:
return skill_animalKen; return skill_animalKen;
case kSkillDriveId: case kSkillDriveId:
@@ -598,8 +598,8 @@ int CharacterType::GetSkillValue(int skillId) const {
return 0; return 0;
} }
void CharacterType::SetKnowledgeValue(int knowledgeId, int value) { void CharacterType::SetKnowledgeValue(int id, int value) {
switch (knowledgeId) { switch (id) {
case kKnowledgeBureaucracyId: case kKnowledgeBureaucracyId:
knowledge_bureaucracy = value; knowledge_bureaucracy = value;
break; break;
@@ -633,8 +633,8 @@ void CharacterType::SetKnowledgeValue(int knowledgeId, int value) {
} }
} }
int CharacterType::GetKnowledgeValue(int knowledgeId) const { int CharacterType::GetKnowledgeValue(int id) const {
switch (knowledgeId) { switch (id) {
case kKnowledgeBureaucracyId: case kKnowledgeBureaucracyId:
return knowledge_bureaucracy; return knowledge_bureaucracy;
case kKnowledgeComputerId: case kKnowledgeComputerId:
@@ -659,8 +659,8 @@ int CharacterType::GetKnowledgeValue(int knowledgeId) const {
return 0; return 0;
} }
void CharacterType::SetBackgroundValue(int backgroundId, int value) { void CharacterType::SetBackgroundValue(int id, int value) {
switch (backgroundId) { switch (id) {
case kBackgroundAlliesId: case kBackgroundAlliesId:
background_allies = value; background_allies = value;
break; break;
@@ -694,8 +694,8 @@ void CharacterType::SetBackgroundValue(int backgroundId, int value) {
} }
} }
int CharacterType::GetBackgroundValue(int backgroundId) const { int CharacterType::GetBackgroundValue(int id) const {
switch (backgroundId) { switch (id) {
case kBackgroundAlliesId: case kBackgroundAlliesId:
return background_allies; return background_allies;
case kBackgroundContactsId: case kBackgroundContactsId:
@@ -722,12 +722,17 @@ int CharacterType::GetBackgroundValue(int backgroundId) const {
void CharacterType::FillBackgroundValues(std::vector<int>& values) const { void CharacterType::FillBackgroundValues(std::vector<int>& values) const {
values.clear(); values.clear();
values.push_back(0); // To pad the indexes. for (int id = 1; id <= kBackgroundsCount; id++) {
for (int backgroundId = 1; backgroundId <= kBackgroundsCount; backgroundId++) { values[id] = GetBackgroundValue(id);
values[backgroundId] = GetBackgroundValue(backgroundId);
} }
} }
vector<int> CharacterType::GetBackgroundValues() const {
vector<int> values;
FillBackgroundValues(values);
return values;
}
int GetBackgroundPoints() { int GetBackgroundPoints() {
return kBackgroundPoints; return kBackgroundPoints;
} }

View File

@@ -26,44 +26,45 @@
* @{ * @{
*/ */
namespace SBF { namespace SBF {
int GetAttributePointsForRank(int rankId); int GetAttributePointsForRank(int rank_id);
int GetBackgroundPoints();
int GetDisciplinePoints(); int GetDisciplinePoints();
int GetVirtuePoints(); int GetVirtuePoints();
class CharacterType { class CharacterType {
public: public:
CharacterType(); CharacterType();
void FillAbilityValues(std::vector<int>& abilityValues, int abilityGroupId) const; void FillAbilityValues(std::vector<int>& values, int group_id) const;
void FillAttributeValues(std::vector<int>& attributeValues, int groupId) const; void FillAttributeValues(std::vector<int>& values, int group_id) const;
void FillBackgroundValues(std::vector<int>& backgroundValues) const; void FillBackgroundValues(std::vector<int>& values) const;
void FillDisciplineValues(std::vector<int>& disciplineValues) const; void FillDisciplineValues(std::vector<int>& values) const;
void FillVirtueValues(std::vector<int>& virtueValues) const; void FillVirtueValues(std::vector<int>& values) const;
int GetAbilityValue(int abilityGroupId, int abilityId) const; int GetAbilityValue(int group_id, int id) const;
int GetAttributeValue(int attributeGroupId, int abilityId) const;
std::vector<int> GetAttributeValuesInGroup(int group_id) const;
int GetPhysicalAttributeValue(int id) const;
int GetSocialAttributeValue(int id) const;
int GetMentalAttributeValue(int id) const;
int GetBackgroundValue(int backgroundId) const;
std::string GetAllDerangementsLine() const; std::string GetAllDerangementsLine() const;
int GetDisciplineValue(int disciplineId) const; int GetAttributeValue(int group_id, int id) const;
std::vector<int> GetAttributeValuesInGroup(int group_id) const;
int GetBackgroundValue(int id) const;
std::vector<int> GetBackgroundValues() const;
int GetDisciplineValue(int id) const;
std::vector<int> GetDisciplineValues() const; std::vector<int> GetDisciplineValues() const;
int GetKnowledgeValue(int knowledgeId) const; int GetKnowledgeValue(int id) const;
int GetSkillValue(int skillId) const; int GetMentalAttributeValue(int id) const;
int GetTalentValue(int talentId) const; int GetPhysicalAttributeValue(int id) const;
int GetVirtueValue(int virtueId) const; int GetSkillValue(int id) const;
void SetAbilityValue(int abilityGroupId, int abilityId, int value); int GetSocialAttributeValue(int id) const;
void SetAttributeValue(int attributeGroupId, int attributeId, int value); int GetTalentValue(int id) const;
void SetPhysicalAttributeValue(int id, int value); int GetVirtueValue(int id) const;
void SetAbilityValue(int group_id, int id, int value);
void SetAttributeValue(int group_id, int id, int value);
void SetBackgroundValue(int id, int value);
void SetDisciplineValue(int id, int value);
void SetKnowledgeValue(int id, int value);
void SetMentalAttributeValue(int id, int value); void SetMentalAttributeValue(int id, int value);
void SetPhysicalAttributeValue(int id, int value);
void SetSkillValue(int id, int value);
void SetSocialAttributeValue(int id, int value); void SetSocialAttributeValue(int id, int value);
void SetBackgroundValue(int backgroundId, int value); void SetTalentValue(int id, int value);
void SetDisciplineValue(int disciplineId, int value); void SetVirtueValue(int id, int value);
void SetKnowledgeValue(int knowledgeId, int value);
void SetSkillValue(int skillId, int value);
void SetTalentValue(int talentId, int value);
void SetVirtueValue(int virtueId, int value);
std::string name; std::string name;
std::string player; std::string player;
std::string chronicle; std::string chronicle;