openmw/components/esm/attr.cpp

59 lines
1.5 KiB
C++
Raw Normal View History

#include "attr.hpp"
#include <components/misc/strings/algorithm.hpp>
2023-05-25 10:49:27 +00:00
#include <stdexcept>
using namespace ESM;
2013-08-09 05:14:58 -07:00
const std::string Attribute::sAttributeNames[Attribute::Length] = {
"Strength",
"Intelligence",
"Willpower",
"Agility",
"Speed",
"Endurance",
"Personality",
"Luck",
2013-08-09 05:14:58 -07:00
};
2012-09-17 11:37:50 +04:00
const std::string Attribute::sGmstAttributeIds[Attribute::Length] = {
"sAttributeStrength",
"sAttributeIntelligence",
"sAttributeWillpower",
"sAttributeAgility",
"sAttributeSpeed",
"sAttributeEndurance",
"sAttributePersonality",
"sAttributeLuck",
};
2012-09-17 11:37:50 +04:00
const std::string Attribute::sGmstAttributeDescIds[Attribute::Length] = {
"sStrDesc",
"sIntDesc",
"sWilDesc",
"sAgiDesc",
"sSpdDesc",
"sEndDesc",
"sPerDesc",
"sLucDesc",
};
2012-09-17 11:37:50 +04:00
const std::string Attribute::sAttributeIcons[Attribute::Length] = {
"icons\\k\\attribute_strength.dds",
"icons\\k\\attribute_int.dds",
"icons\\k\\attribute_wilpower.dds",
"icons\\k\\attribute_agility.dds",
"icons\\k\\attribute_speed.dds",
"icons\\k\\attribute_endurance.dds",
"icons\\k\\attribute_personality.dds",
"icons\\k\\attribute_luck.dds",
};
Attribute::AttributeID Attribute::stringToAttributeId(std::string_view attribute)
{
2023-05-27 21:54:13 +02:00
for (int id = 0; id < Attribute::Length; ++id)
2023-05-21 13:01:11 +02:00
if (Misc::StringUtils::ciEqual(sAttributeNames[id], attribute))
2023-05-27 21:54:13 +02:00
return Attribute::AttributeID(id);
throw std::logic_error("No such attribute: " + std::string(attribute));
}