mirror of
https://github.com/OpenMW/openmw.git
synced 2025-10-18 14:16:37 +00:00
Revert bad change, do actual fix
This commit is contained in:
parent
1a886db951
commit
e74167c7b7
1 changed files with 8 additions and 8 deletions
|
@ -74,13 +74,14 @@ namespace
|
||||||
npc.mHair = ESM::RefId::deserializeText(rec["hair"].get<std::string_view>());
|
npc.mHair = ESM::RefId::deserializeText(rec["hair"].get<std::string_view>());
|
||||||
if (rec["primaryFaction"] != sol::nil)
|
if (rec["primaryFaction"] != sol::nil)
|
||||||
{
|
{
|
||||||
const auto str = rec["primaryFaction"].get<std::string>();
|
auto factionStr = rec["primaryFaction"].get<std::string_view>();
|
||||||
|
ESM::RefId factionId = ESM::RefId::deserializeText(factionStr);
|
||||||
|
|
||||||
const auto& factionStore = MWBase::Environment::get().getESMStore()->get<ESM::Faction>();
|
const auto& factionStore = MWBase::Environment::get().getESMStore()->get<ESM::Faction>();
|
||||||
|
if (!factionStore.search(factionId))
|
||||||
|
throw std::runtime_error("Invalid faction '" + std::string(factionStr) + "' in primaryFaction");
|
||||||
|
|
||||||
if (!factionStore.search(ESM::RefId::deserializeText(str)))
|
npc.mFaction = factionId;
|
||||||
throw std::runtime_error("Invalid faction '" + str + "' in primaryFaction");
|
|
||||||
|
|
||||||
npc.mFaction = ESM::RefId::deserializeText(str);
|
|
||||||
}
|
}
|
||||||
if (rec["isMale"] != sol::nil)
|
if (rec["isMale"] != sol::nil)
|
||||||
{
|
{
|
||||||
|
@ -131,9 +132,8 @@ namespace
|
||||||
{
|
{
|
||||||
if (!npc.mFaction.empty())
|
if (!npc.mFaction.empty())
|
||||||
{
|
{
|
||||||
const ESM::RefId factionId = npc.mFaction;
|
|
||||||
const ESM::Faction* faction
|
const ESM::Faction* faction
|
||||||
= MWBase::Environment::get().getESMStore()->get<ESM::Faction>().find(factionId);
|
= MWBase::Environment::get().getESMStore()->get<ESM::Faction>().find(npc.mFaction);
|
||||||
|
|
||||||
int luaValue = rec["primaryFactionRank"];
|
int luaValue = rec["primaryFactionRank"];
|
||||||
int rank = LuaUtil::fromLuaIndex(luaValue);
|
int rank = LuaUtil::fromLuaIndex(luaValue);
|
||||||
|
@ -142,7 +142,7 @@ namespace
|
||||||
|
|
||||||
if (rank < 0 || rank >= maxRank)
|
if (rank < 0 || rank >= maxRank)
|
||||||
throw std::runtime_error("primaryFactionRank: Requested rank " + std::to_string(rank)
|
throw std::runtime_error("primaryFactionRank: Requested rank " + std::to_string(rank)
|
||||||
+ " is out of bounds for faction " + factionId.toDebugString());
|
+ " is out of bounds for faction " + npc.mFaction.toDebugString());
|
||||||
|
|
||||||
npc.mNpdt.mRank = rank;
|
npc.mNpdt.mRank = rank;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue