1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-03-01 16:13:28 +00:00

Use ESM::Class::Specialization for parameters to npcstats

This commit is contained in:
Mads Buvik Sandvei 2024-01-15 20:29:35 +01:00
parent 011d9d6493
commit 80e9631abd
4 changed files with 13 additions and 8 deletions

View File

@ -164,8 +164,10 @@ namespace MWGui
const MWMechanics::NpcStats& pcStats = player.getClass().getNpcStats(player); const MWMechanics::NpcStats& pcStats = player.getClass().getNpcStats(player);
setClassImage(mClassImage, setClassImage(mClassImage,
ESM::RefId::stringRefId(getLevelupClassImage(pcStats.getSkillIncreasesForSpecialization(0), ESM::RefId::stringRefId(
pcStats.getSkillIncreasesForSpecialization(1), pcStats.getSkillIncreasesForSpecialization(2)))); getLevelupClassImage(pcStats.getSkillIncreasesForSpecialization(ESM::Class::Specialization::Combat),
pcStats.getSkillIncreasesForSpecialization(ESM::Class::Specialization::Magic),
pcStats.getSkillIncreasesForSpecialization(ESM::Class::Specialization::Stealth))));
int level = creatureStats.getLevel() + 1; int level = creatureStats.getLevel() + 1;
mLevelText->setCaptionWithReplacing("#{sLevelUpMenu1} " + MyGUI::utility::toString(level)); mLevelText->setCaptionWithReplacing("#{sLevelUpMenu1} " + MyGUI::utility::toString(level));

View File

@ -89,7 +89,8 @@ namespace MWLua
stats.setSkillIncreasesForAttribute( stats.setSkillIncreasesForAttribute(
*std::get<ESM::RefId>(index).getIf<ESM::StringRefId>(), LuaUtil::cast<int>(value)); *std::get<ESM::RefId>(index).getIf<ESM::StringRefId>(), LuaUtil::cast<int>(value));
else if (prop == "skillIncreasesForSpecialization") else if (prop == "skillIncreasesForSpecialization")
stats.setSkillIncreasesForSpecialization(std::get<int>(index), LuaUtil::cast<int>(value)); stats.setSkillIncreasesForSpecialization(
static_cast<ESM::Class::Specialization>(std::get<int>(index)), LuaUtil::cast<int>(value));
} }
class SkillIncreasesForAttributeStats class SkillIncreasesForAttributeStats
@ -144,7 +145,8 @@ namespace MWLua
return getValue(context, mObject, &setNpcValue, specialization, "skillIncreasesForSpecialization", return getValue(context, mObject, &setNpcValue, specialization, "skillIncreasesForSpecialization",
[specialization](const MWWorld::Ptr& ptr) { [specialization](const MWWorld::Ptr& ptr) {
return ptr.getClass().getNpcStats(ptr).getSkillIncreasesForSpecialization(specialization); return ptr.getClass().getNpcStats(ptr).getSkillIncreasesForSpecialization(
static_cast<ESM::Class::Specialization>(specialization));
}); });
} }

View File

@ -365,12 +365,12 @@ void MWMechanics::NpcStats::setSkillIncreasesForAttribute(ESM::Attribute::Attrib
mSkillIncreases[attribute] = increases; mSkillIncreases[attribute] = increases;
} }
int MWMechanics::NpcStats::getSkillIncreasesForSpecialization(int spec) const int MWMechanics::NpcStats::getSkillIncreasesForSpecialization(ESM::Class::Specialization spec) const
{ {
return mSpecIncreases[spec]; return mSpecIncreases[spec];
} }
void MWMechanics::NpcStats::setSkillIncreasesForSpecialization(int spec, int increases) void MWMechanics::NpcStats::setSkillIncreasesForSpecialization(ESM::Class::Specialization spec, int increases)
{ {
assert(spec >= 0 && spec < 3); assert(spec >= 0 && spec < 3);
mSpecIncreases[spec] = increases; mSpecIncreases[spec] = increases;

View File

@ -3,6 +3,7 @@
#include "creaturestats.hpp" #include "creaturestats.hpp"
#include <components/esm/refid.hpp> #include <components/esm/refid.hpp>
#include <components/esm3/loadclas.hpp>
#include <components/esm3/loadskil.hpp> #include <components/esm3/loadskil.hpp>
#include <map> #include <map>
#include <set> #include <set>
@ -98,8 +99,8 @@ namespace MWMechanics
int getSkillIncreasesForAttribute(ESM::Attribute::AttributeID attribute) const; int getSkillIncreasesForAttribute(ESM::Attribute::AttributeID attribute) const;
void setSkillIncreasesForAttribute(ESM::Attribute::AttributeID, int increases); void setSkillIncreasesForAttribute(ESM::Attribute::AttributeID, int increases);
int getSkillIncreasesForSpecialization(int spec) const; int getSkillIncreasesForSpecialization(ESM::Class::Specialization spec) const;
void setSkillIncreasesForSpecialization(int spec, int increases); void setSkillIncreasesForSpecialization(ESM::Class::Specialization spec, int increases);
void levelUp(); void levelUp();