From 3c588900dd4afef5320e765dc72850cf2ef25ce5 Mon Sep 17 00:00:00 2001 From: Evil Eye Date: Sat, 10 Jun 2023 22:04:14 +0200 Subject: [PATCH] Apply elsid's suggestion and revert 3a888ef543cf2c2a2cc0fce5bff6449a76d57047 --- apps/openmw/mwmechanics/weapontype.cpp | 434 +++++++++++-------------- components/esm3/loadskil.cpp | 28 -- components/esm3/loadskil.hpp | 54 +-- 3 files changed, 208 insertions(+), 308 deletions(-) diff --git a/apps/openmw/mwmechanics/weapontype.cpp b/apps/openmw/mwmechanics/weapontype.cpp index 9dd5842f58..0612ca1a2e 100644 --- a/apps/openmw/mwmechanics/weapontype.cpp +++ b/apps/openmw/mwmechanics/weapontype.cpp @@ -18,325 +18,253 @@ namespace MWMechanics template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "", - /* long group */ "", - /* sound ID */ "", - /* attach bone */ "", - /* sheath bone */ "", - /* usage skill */ ESM::Skill::HandToHand, - /* weapon class*/ ESM::WeaponType::Melee, - /* ammo type */ ESM::Weapon::None, - /* flags */ 0 }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "", + /* long group */ "", + /* sound ID */ "", + /* attach bone */ "", + /* sheath bone */ "", + /* usage skill */ ESM::Skill::HandToHand, + /* weapon class*/ ESM::WeaponType::Melee, + /* ammo type */ ESM::Weapon::None, + /* flags */ 0 }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "1h", - /* long group */ "pickprobe", - /* sound ID */ "", - /* attach bone */ "", - /* sheath bone */ "", - /* usage skill */ ESM::Skill::Security, - /* weapon class*/ ESM::WeaponType::Melee, - /* ammo type */ ESM::Weapon::None, - /* flags */ 0 }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "1h", + /* long group */ "pickprobe", + /* sound ID */ "", + /* attach bone */ "", + /* sheath bone */ "", + /* usage skill */ ESM::Skill::Security, + /* weapon class*/ ESM::WeaponType::Melee, + /* ammo type */ ESM::Weapon::None, + /* flags */ 0 }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "spell", - /* long group */ "spellcast", - /* sound ID */ "", - /* attach bone */ "", - /* sheath bone */ "", - /* usage skill */ ESM::Skill::HandToHand, - /* weapon class*/ ESM::WeaponType::Melee, - /* ammo type */ ESM::Weapon::None, - /* flags */ ESM::WeaponType::TwoHanded }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "spell", + /* long group */ "spellcast", + /* sound ID */ "", + /* attach bone */ "", + /* sheath bone */ "", + /* usage skill */ ESM::Skill::HandToHand, + /* weapon class*/ ESM::WeaponType::Melee, + /* ammo type */ ESM::Weapon::None, + /* flags */ ESM::WeaponType::TwoHanded }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "hh", - /* long group */ "handtohand", - /* sound ID */ "", - /* attach bone */ "", - /* sheath bone */ "", - /* usage skill */ ESM::Skill::HandToHand, - /* weapon class*/ ESM::WeaponType::Melee, - /* ammo type */ ESM::Weapon::None, - /* flags */ ESM::WeaponType::TwoHanded }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "hh", + /* long group */ "handtohand", + /* sound ID */ "", + /* attach bone */ "", + /* sheath bone */ "", + /* usage skill */ ESM::Skill::HandToHand, + /* weapon class*/ ESM::WeaponType::Melee, + /* ammo type */ ESM::Weapon::None, + /* flags */ ESM::WeaponType::TwoHanded }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "1s", - /* long group */ "shortbladeonehand", - /* sound ID */ "Item Weapon Shortblade", - /* attach bone */ "Weapon Bone", - /* sheath bone */ "Bip01 ShortBladeOneHand", - /* usage skill */ ESM::Skill::ShortBlade, - /* weapon class*/ ESM::WeaponType::Melee, - /* ammo type */ ESM::Weapon::None, - /* flags */ ESM::WeaponType::HasHealth }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "1s", + /* long group */ "shortbladeonehand", + /* sound ID */ "Item Weapon Shortblade", + /* attach bone */ "Weapon Bone", + /* sheath bone */ "Bip01 ShortBladeOneHand", + /* usage skill */ ESM::Skill::ShortBlade, + /* weapon class*/ ESM::WeaponType::Melee, + /* ammo type */ ESM::Weapon::None, + /* flags */ ESM::WeaponType::HasHealth }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "1h", - /* long group */ "weapononehand", - /* sound ID */ "Item Weapon Longblade", - /* attach bone */ "Weapon Bone", - /* sheath bone */ "Bip01 LongBladeOneHand", - /* usage skill */ ESM::Skill::LongBlade, - /* weapon class*/ ESM::WeaponType::Melee, - /* ammo type */ ESM::Weapon::None, - /* flags */ ESM::WeaponType::HasHealth }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "1h", + /* long group */ "weapononehand", + /* sound ID */ "Item Weapon Longblade", + /* attach bone */ "Weapon Bone", + /* sheath bone */ "Bip01 LongBladeOneHand", + /* usage skill */ ESM::Skill::LongBlade, + /* weapon class*/ ESM::WeaponType::Melee, + /* ammo type */ ESM::Weapon::None, + /* flags */ ESM::WeaponType::HasHealth }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "1b", - /* long group */ "bluntonehand", - /* sound ID */ "Item Weapon Blunt", - /* attach bone */ "Weapon Bone", - /* sheath bone */ "Bip01 BluntOneHand", - /* usage skill */ ESM::Skill::BluntWeapon, - /* weapon class*/ ESM::WeaponType::Melee, - /* ammo type */ ESM::Weapon::None, - /* flags */ ESM::WeaponType::HasHealth }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "1b", + /* long group */ "bluntonehand", + /* sound ID */ "Item Weapon Blunt", + /* attach bone */ "Weapon Bone", + /* sheath bone */ "Bip01 BluntOneHand", + /* usage skill */ ESM::Skill::BluntWeapon, + /* weapon class*/ ESM::WeaponType::Melee, + /* ammo type */ ESM::Weapon::None, + /* flags */ ESM::WeaponType::HasHealth }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "1b", - /* long group */ "bluntonehand", - /* sound ID */ "Item Weapon Blunt", - /* attach bone */ "Weapon Bone", - /* sheath bone */ "Bip01 LongBladeOneHand", - /* usage skill */ ESM::Skill::Axe, - /* weapon class*/ ESM::WeaponType::Melee, - /* ammo type */ ESM::Weapon::None, - /* flags */ ESM::WeaponType::HasHealth }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "1b", + /* long group */ "bluntonehand", + /* sound ID */ "Item Weapon Blunt", + /* attach bone */ "Weapon Bone", + /* sheath bone */ "Bip01 LongBladeOneHand", + /* usage skill */ ESM::Skill::Axe, + /* weapon class*/ ESM::WeaponType::Melee, + /* ammo type */ ESM::Weapon::None, + /* flags */ ESM::WeaponType::HasHealth }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "2c", - /* long group */ "weapontwohand", - /* sound ID */ "Item Weapon Longblade", - /* attach bone */ "Weapon Bone", - /* sheath bone */ "Bip01 LongBladeTwoClose", - /* usage skill */ ESM::Skill::LongBlade, - /* weapon class*/ ESM::WeaponType::Melee, - /* ammo type */ ESM::Weapon::None, - /* flags */ ESM::WeaponType::HasHealth | ESM::WeaponType::TwoHanded }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "2c", + /* long group */ "weapontwohand", + /* sound ID */ "Item Weapon Longblade", + /* attach bone */ "Weapon Bone", + /* sheath bone */ "Bip01 LongBladeTwoClose", + /* usage skill */ ESM::Skill::LongBlade, + /* weapon class*/ ESM::WeaponType::Melee, + /* ammo type */ ESM::Weapon::None, + /* flags */ ESM::WeaponType::HasHealth | ESM::WeaponType::TwoHanded }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "2b", - /* long group */ "blunttwohand", - /* sound ID */ "Item Weapon Blunt", - /* attach bone */ "Weapon Bone", - /* sheath bone */ "Bip01 AxeTwoClose", - /* usage skill */ ESM::Skill::Axe, - /* weapon class*/ ESM::WeaponType::Melee, - /* ammo type */ ESM::Weapon::None, - /* flags */ ESM::WeaponType::HasHealth | ESM::WeaponType::TwoHanded }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "2b", + /* long group */ "blunttwohand", + /* sound ID */ "Item Weapon Blunt", + /* attach bone */ "Weapon Bone", + /* sheath bone */ "Bip01 AxeTwoClose", + /* usage skill */ ESM::Skill::Axe, + /* weapon class*/ ESM::WeaponType::Melee, + /* ammo type */ ESM::Weapon::None, + /* flags */ ESM::WeaponType::HasHealth | ESM::WeaponType::TwoHanded }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "2b", - /* long group */ "blunttwohand", - /* sound ID */ "Item Weapon Blunt", - /* attach bone */ "Weapon Bone", - /* sheath bone */ "Bip01 BluntTwoClose", - /* usage skill */ ESM::Skill::BluntWeapon, - /* weapon class*/ ESM::WeaponType::Melee, - /* ammo type */ ESM::Weapon::None, - /* flags */ ESM::WeaponType::HasHealth | ESM::WeaponType::TwoHanded }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "2b", + /* long group */ "blunttwohand", + /* sound ID */ "Item Weapon Blunt", + /* attach bone */ "Weapon Bone", + /* sheath bone */ "Bip01 BluntTwoClose", + /* usage skill */ ESM::Skill::BluntWeapon, + /* weapon class*/ ESM::WeaponType::Melee, + /* ammo type */ ESM::Weapon::None, + /* flags */ ESM::WeaponType::HasHealth | ESM::WeaponType::TwoHanded }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "2w", - /* long group */ "weapontwowide", - /* sound ID */ "Item Weapon Blunt", - /* attach bone */ "Weapon Bone", - /* sheath bone */ "Bip01 BluntTwoWide", - /* usage skill */ ESM::Skill::BluntWeapon, - /* weapon class*/ ESM::WeaponType::Melee, - /* ammo type */ ESM::Weapon::None, - /* flags */ ESM::WeaponType::HasHealth | ESM::WeaponType::TwoHanded }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "2w", + /* long group */ "weapontwowide", + /* sound ID */ "Item Weapon Blunt", + /* attach bone */ "Weapon Bone", + /* sheath bone */ "Bip01 BluntTwoWide", + /* usage skill */ ESM::Skill::BluntWeapon, + /* weapon class*/ ESM::WeaponType::Melee, + /* ammo type */ ESM::Weapon::None, + /* flags */ ESM::WeaponType::HasHealth | ESM::WeaponType::TwoHanded }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "2w", - /* long group */ "weapontwowide", - /* sound ID */ "Item Weapon Spear", - /* attach bone */ "Weapon Bone", - /* sheath bone */ "Bip01 SpearTwoWide", - /* usage skill */ ESM::Skill::Spear, - /* weapon class*/ ESM::WeaponType::Melee, - /* ammo type */ ESM::Weapon::None, - /* flags */ ESM::WeaponType::HasHealth | ESM::WeaponType::TwoHanded }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "2w", + /* long group */ "weapontwowide", + /* sound ID */ "Item Weapon Spear", + /* attach bone */ "Weapon Bone", + /* sheath bone */ "Bip01 SpearTwoWide", + /* usage skill */ ESM::Skill::Spear, + /* weapon class*/ ESM::WeaponType::Melee, + /* ammo type */ ESM::Weapon::None, + /* flags */ ESM::WeaponType::HasHealth | ESM::WeaponType::TwoHanded }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "bow", - /* long group */ "bowandarrow", - /* sound ID */ "Item Weapon Bow", - /* attach bone */ "Weapon Bone Left", - /* sheath bone */ "Bip01 MarksmanBow", - /* usage skill */ ESM::Skill::Marksman, - /* weapon class*/ ESM::WeaponType::Ranged, - /* ammo type */ ESM::Weapon::Arrow, - /* flags */ ESM::WeaponType::HasHealth | ESM::WeaponType::TwoHanded }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "bow", + /* long group */ "bowandarrow", + /* sound ID */ "Item Weapon Bow", + /* attach bone */ "Weapon Bone Left", + /* sheath bone */ "Bip01 MarksmanBow", + /* usage skill */ ESM::Skill::Marksman, + /* weapon class*/ ESM::WeaponType::Ranged, + /* ammo type */ ESM::Weapon::Arrow, + /* flags */ ESM::WeaponType::HasHealth | ESM::WeaponType::TwoHanded }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "crossbow", - /* long group */ "crossbow", - /* sound ID */ "Item Weapon Crossbow", - /* attach bone */ "Weapon Bone", - /* sheath bone */ "Bip01 MarksmanCrossbow", - /* usage skill */ ESM::Skill::Marksman, - /* weapon class*/ ESM::WeaponType::Ranged, - /* ammo type */ ESM::Weapon::Bolt, - /* flags */ ESM::WeaponType::HasHealth | ESM::WeaponType::TwoHanded }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "crossbow", + /* long group */ "crossbow", + /* sound ID */ "Item Weapon Crossbow", + /* attach bone */ "Weapon Bone", + /* sheath bone */ "Bip01 MarksmanCrossbow", + /* usage skill */ ESM::Skill::Marksman, + /* weapon class*/ ESM::WeaponType::Ranged, + /* ammo type */ ESM::Weapon::Bolt, + /* flags */ ESM::WeaponType::HasHealth | ESM::WeaponType::TwoHanded }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "1t", - /* long group */ "throwweapon", - /* sound ID */ "Item Weapon Blunt", - /* attach bone */ "Weapon Bone", - /* sheath bone */ "Bip01 MarksmanThrown", - /* usage skill */ ESM::Skill::Marksman, - /* weapon class*/ ESM::WeaponType::Thrown, - /* ammo type */ ESM::Weapon::None, - /* flags */ 0 }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "1t", + /* long group */ "throwweapon", + /* sound ID */ "Item Weapon Blunt", + /* attach bone */ "Weapon Bone", + /* sheath bone */ "Bip01 MarksmanThrown", + /* usage skill */ ESM::Skill::Marksman, + /* weapon class*/ ESM::WeaponType::Thrown, + /* ammo type */ ESM::Weapon::None, + /* flags */ 0 }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "", - /* long group */ "", - /* sound ID */ "Item Ammo", - /* attach bone */ "Bip01 Arrow", - /* sheath bone */ "", - /* usage skill */ ESM::Skill::Marksman, - /* weapon class*/ ESM::WeaponType::Ammo, - /* ammo type */ ESM::Weapon::None, - /* flags */ 0 }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "", + /* long group */ "", + /* sound ID */ "Item Ammo", + /* attach bone */ "Bip01 Arrow", + /* sheath bone */ "", + /* usage skill */ ESM::Skill::Marksman, + /* weapon class*/ ESM::WeaponType::Ammo, + /* ammo type */ ESM::Weapon::None, + /* flags */ 0 }; }; template <> struct Weapon { - inline static const ESM::WeaponType& getValue() - { - static const ESM::WeaponType value{ /* short group */ "", - /* long group */ "", - /* sound ID */ "Item Ammo", - /* attach bone */ "ArrowBone", - /* sheath bone */ "", - /* usage skill */ ESM::Skill::Marksman, - /* weapon class*/ ESM::WeaponType::Ammo, - /* ammo type */ ESM::Weapon::None, - /* flags */ 0 }; - return value; - } + inline static const ESM::WeaponType sValue{ /* short group */ "", + /* long group */ "", + /* sound ID */ "Item Ammo", + /* attach bone */ "ArrowBone", + /* sheath bone */ "", + /* usage skill */ ESM::Skill::Marksman, + /* weapon class*/ ESM::WeaponType::Ammo, + /* ammo type */ ESM::Weapon::None, + /* flags */ 0 }; }; MWWorld::ContainerStoreIterator getActiveWeapon(const MWWorld::Ptr& actor, int* weaptype) @@ -377,43 +305,43 @@ namespace MWMechanics switch (static_cast(weaponType)) { case ESM::Weapon::PickProbe: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::HandToHand: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::Spell: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::None: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::ShortBladeOneHand: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::LongBladeOneHand: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::LongBladeTwoHand: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::BluntOneHand: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::BluntTwoClose: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::BluntTwoWide: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::SpearTwoWide: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::AxeOneHand: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::AxeTwoHand: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::MarksmanBow: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::MarksmanCrossbow: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::MarksmanThrown: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::Arrow: - return &Weapon::getValue(); + return &Weapon::sValue; case ESM::Weapon::Bolt: - return &Weapon::getValue(); + return &Weapon::sValue; } - return &Weapon::getValue(); + return &Weapon::sValue; } } diff --git a/components/esm3/loadskil.cpp b/components/esm3/loadskil.cpp index 14dd9acac2..983ef8a152 100644 --- a/components/esm3/loadskil.cpp +++ b/components/esm3/loadskil.cpp @@ -7,34 +7,6 @@ namespace ESM { - const RefId Skill::Block = Skill::indexToRefId(0); - const RefId Skill::Armorer = Skill::indexToRefId(1); - const RefId Skill::MediumArmor = Skill::indexToRefId(2); - const RefId Skill::HeavyArmor = Skill::indexToRefId(3); - const RefId Skill::BluntWeapon = Skill::indexToRefId(4); - const RefId Skill::LongBlade = Skill::indexToRefId(5); - const RefId Skill::Axe = Skill::indexToRefId(6); - const RefId Skill::Spear = Skill::indexToRefId(7); - const RefId Skill::Athletics = Skill::indexToRefId(8); - const RefId Skill::Enchant = Skill::indexToRefId(9); - const RefId Skill::Destruction = Skill::indexToRefId(10); - const RefId Skill::Alteration = Skill::indexToRefId(11); - const RefId Skill::Illusion = Skill::indexToRefId(12); - const RefId Skill::Conjuration = Skill::indexToRefId(13); - const RefId Skill::Mysticism = Skill::indexToRefId(14); - const RefId Skill::Restoration = Skill::indexToRefId(15); - const RefId Skill::Alchemy = Skill::indexToRefId(16); - const RefId Skill::Unarmored = Skill::indexToRefId(17); - const RefId Skill::Security = Skill::indexToRefId(18); - const RefId Skill::Sneak = Skill::indexToRefId(19); - const RefId Skill::Acrobatics = Skill::indexToRefId(20); - const RefId Skill::LightArmor = Skill::indexToRefId(21); - const RefId Skill::ShortBlade = Skill::indexToRefId(22); - const RefId Skill::Marksman = Skill::indexToRefId(23); - const RefId Skill::Mercantile = Skill::indexToRefId(24); - const RefId Skill::Speechcraft = Skill::indexToRefId(25); - const RefId Skill::HandToHand = Skill::indexToRefId(26); - const std::string Skill::sSkillNames[Length] = { "Block", "Armorer", diff --git a/components/esm3/loadskil.hpp b/components/esm3/loadskil.hpp index bd956475bf..ea3dd6954b 100644 --- a/components/esm3/loadskil.hpp +++ b/components/esm3/loadskil.hpp @@ -48,33 +48,33 @@ namespace ESM std::string mIcon; float mWerewolfValue{}; - static const RefId Block; - static const RefId Armorer; - static const RefId MediumArmor; - static const RefId HeavyArmor; - static const RefId BluntWeapon; - static const RefId LongBlade; - static const RefId Axe; - static const RefId Spear; - static const RefId Athletics; - static const RefId Enchant; - static const RefId Destruction; - static const RefId Alteration; - static const RefId Illusion; - static const RefId Conjuration; - static const RefId Mysticism; - static const RefId Restoration; - static const RefId Alchemy; - static const RefId Unarmored; - static const RefId Security; - static const RefId Sneak; - static const RefId Acrobatics; - static const RefId LightArmor; - static const RefId ShortBlade; - static const RefId Marksman; - static const RefId Mercantile; - static const RefId Speechcraft; - static const RefId HandToHand; + static constexpr IndexRefId Block{ sRecordId, 0 }; + static constexpr IndexRefId Armorer{ sRecordId, 1 }; + static constexpr IndexRefId MediumArmor{ sRecordId, 2 }; + static constexpr IndexRefId HeavyArmor{ sRecordId, 3 }; + static constexpr IndexRefId BluntWeapon{ sRecordId, 4 }; + static constexpr IndexRefId LongBlade{ sRecordId, 5 }; + static constexpr IndexRefId Axe{ sRecordId, 6 }; + static constexpr IndexRefId Spear{ sRecordId, 7 }; + static constexpr IndexRefId Athletics{ sRecordId, 8 }; + static constexpr IndexRefId Enchant{ sRecordId, 9 }; + static constexpr IndexRefId Destruction{ sRecordId, 10 }; + static constexpr IndexRefId Alteration{ sRecordId, 11 }; + static constexpr IndexRefId Illusion{ sRecordId, 12 }; + static constexpr IndexRefId Conjuration{ sRecordId, 13 }; + static constexpr IndexRefId Mysticism{ sRecordId, 14 }; + static constexpr IndexRefId Restoration{ sRecordId, 15 }; + static constexpr IndexRefId Alchemy{ sRecordId, 16 }; + static constexpr IndexRefId Unarmored{ sRecordId, 17 }; + static constexpr IndexRefId Security{ sRecordId, 18 }; + static constexpr IndexRefId Sneak{ sRecordId, 19 }; + static constexpr IndexRefId Acrobatics{ sRecordId, 20 }; + static constexpr IndexRefId LightArmor{ sRecordId, 21 }; + static constexpr IndexRefId ShortBlade{ sRecordId, 22 }; + static constexpr IndexRefId Marksman{ sRecordId, 23 }; + static constexpr IndexRefId Mercantile{ sRecordId, 24 }; + static constexpr IndexRefId Speechcraft{ sRecordId, 25 }; + static constexpr IndexRefId HandToHand{ sRecordId, 26 }; static constexpr int Length = 27; static const std::string sSkillNames[Length];