Deduplicate specialization code

simplify_debugging
Evil Eye 12 months ago
parent 2ab5b8e7b0
commit 877f6747be

@ -254,10 +254,8 @@ namespace MWGui
ESM::Class::Specialization specialization
= static_cast<ESM::Class::Specialization>(klass->mData.mSpecialization);
static const std::string_view specIds[3]
= { "sSpecializationCombat", "sSpecializationMagic", "sSpecializationStealth" };
std::string specName{ MWBase::Environment::get().getWindowManager()->getGameSettingString(
specIds[specialization], specIds[specialization]) };
ESM::Class::sGmstSpecializationIds[specialization], ESM::Class::sGmstSpecializationIds[specialization]) };
mSpecializationName->setCaption(specName);
ToolTips::createSpecializationToolTip(mSpecializationName, specName, specialization);
@ -579,11 +577,10 @@ namespace MWGui
void CreateClassDialog::setSpecialization(int id)
{
mSpecializationId = (ESM::Class::Specialization)id;
static const std::string_view specIds[3]
= { "sSpecializationCombat", "sSpecializationMagic", "sSpecializationStealth" };
mSpecializationId = ESM::Class::Specialization(id);
std::string specName{ MWBase::Environment::get().getWindowManager()->getGameSettingString(
specIds[mSpecializationId], specIds[mSpecializationId]) };
ESM::Class::sGmstSpecializationIds[mSpecializationId],
ESM::Class::sGmstSpecializationIds[mSpecializationId]) };
mSpecializationName->setCaption(specName);
ToolTips::createSpecializationToolTip(mSpecializationName, specName, mSpecializationId);
}

@ -936,13 +936,9 @@ namespace MWGui
return;
int spec = playerClass.mData.mSpecialization;
std::string specStr;
if (spec == 0)
specStr = "#{sSpecializationCombat}";
else if (spec == 1)
specStr = "#{sSpecializationMagic}";
else if (spec == 2)
specStr = "#{sSpecializationStealth}";
std::string specStr = "#{";
specStr += ESM::Class::sGmstSpecializationIds[spec];
specStr += '}';
widget->setUserString("Caption_ClassName", playerClass.mName);
widget->setUserString("Caption_ClassDescription", playerClass.mDescription);

@ -32,13 +32,6 @@ namespace ESM
// Pixel color value. Standard four-byte rr,gg,bb,aa format.
typedef uint32_t Color;
enum Specialization
{
SPC_Combat = 0,
SPC_Magic = 1,
SPC_Stealth = 2
};
enum RangeType
{
RT_Self = 0,

@ -8,9 +8,7 @@
namespace ESM
{
const Class::Specialization Class::sSpecializationIds[3] = { Class::Combat, Class::Magic, Class::Stealth };
const char* Class::sGmstSpecializationIds[3]
const std::string_view Class::sGmstSpecializationIds[3]
= { "sSpecializationCombat", "sSpecializationMagic", "sSpecializationStealth" };
int& Class::CLDTstruct::getSkill(int index, bool major)

@ -29,8 +29,7 @@ namespace ESM
Stealth = 2
};
static const Specialization sSpecializationIds[3];
static const char* sGmstSpecializationIds[3];
static const std::string_view sGmstSpecializationIds[3];
struct CLDTstruct
{

Loading…
Cancel
Save