forked from teamnwah/openmw-tes3coop
Cache GMSTs in getDerivedDisposition
This commit is contained in:
parent
ea956b537c
commit
02dec787fd
1 changed files with 19 additions and 9 deletions
|
@ -566,11 +566,14 @@ namespace MWMechanics
|
||||||
MWWorld::LiveCellRef<ESM::NPC>* player = playerPtr.get<ESM::NPC>();
|
MWWorld::LiveCellRef<ESM::NPC>* player = playerPtr.get<ESM::NPC>();
|
||||||
const MWMechanics::NpcStats &playerStats = playerPtr.getClass().getNpcStats(playerPtr);
|
const MWMechanics::NpcStats &playerStats = playerPtr.getClass().getNpcStats(playerPtr);
|
||||||
|
|
||||||
|
const MWWorld::Store<ESM::GameSetting>& gmst = MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>();
|
||||||
|
static float fDispRaceMod = gmst.find("fDispRaceMod")->getFloat();
|
||||||
if (Misc::StringUtils::ciEqual(npc->mBase->mRace, player->mBase->mRace))
|
if (Misc::StringUtils::ciEqual(npc->mBase->mRace, player->mBase->mRace))
|
||||||
x += MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>().find("fDispRaceMod")->getFloat();
|
x += fDispRaceMod;
|
||||||
|
|
||||||
x += MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>().find("fDispPersonalityMult")->getFloat()
|
static float fDispPersonalityMult = gmst.find("fDispPersonalityMult")->getFloat();
|
||||||
* (playerStats.getAttribute(ESM::Attribute::Personality).getModified() - MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>().find("fDispPersonalityBase")->getFloat());
|
static float fDispPersonalityBase = gmst.find("fDispPersonalityBase")->getFloat();
|
||||||
|
x += fDispPersonalityMult * (playerStats.getAttribute(ESM::Attribute::Personality).getModified() - fDispPersonalityBase);
|
||||||
|
|
||||||
float reaction = 0;
|
float reaction = 0;
|
||||||
int rank = 0;
|
int rank = 0;
|
||||||
|
@ -606,16 +609,23 @@ namespace MWMechanics
|
||||||
reaction = 0;
|
reaction = 0;
|
||||||
rank = 0;
|
rank = 0;
|
||||||
}
|
}
|
||||||
x += (MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>().find("fDispFactionRankMult")->getFloat() * rank
|
|
||||||
+ MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>().find("fDispFactionRankBase")->getFloat())
|
|
||||||
* MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>().find("fDispFactionMod")->getFloat() * reaction;
|
|
||||||
|
|
||||||
x -= MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>().find("fDispCrimeMod")->getFloat() * playerStats.getBounty();
|
static float fDispFactionRankMult = gmst.find("fDispFactionRankMult")->getFloat();
|
||||||
|
static float fDispFactionRankBase = gmst.find("fDispFactionRankBase")->getFloat();
|
||||||
|
static float fDispFactionMod = gmst.find("fDispFactionMod")->getFloat();
|
||||||
|
x += (fDispFactionRankMult * rank
|
||||||
|
+ fDispFactionRankBase)
|
||||||
|
* fDispFactionMod * reaction;
|
||||||
|
|
||||||
|
static float fDispCrimeMod = gmst.find("fDispCrimeMod")->getFloat();
|
||||||
|
static float fDispDiseaseMod = gmst.find("fDispDiseaseMod")->getFloat();
|
||||||
|
x -= fDispCrimeMod * playerStats.getBounty();
|
||||||
if (playerStats.hasCommonDisease() || playerStats.hasBlightDisease())
|
if (playerStats.hasCommonDisease() || playerStats.hasBlightDisease())
|
||||||
x += MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>().find("fDispDiseaseMod")->getFloat();
|
x += fDispDiseaseMod;
|
||||||
|
|
||||||
|
static float fDispWeaponDrawn = gmst.find("fDispWeaponDrawn")->getFloat();
|
||||||
if (playerStats.getDrawState() == MWMechanics::DrawState_Weapon)
|
if (playerStats.getDrawState() == MWMechanics::DrawState_Weapon)
|
||||||
x += MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>().find("fDispWeaponDrawn")->getFloat();
|
x += fDispWeaponDrawn;
|
||||||
|
|
||||||
x += ptr.getClass().getCreatureStats(ptr).getMagicEffects().get(ESM::MagicEffect::Charm).getMagnitude();
|
x += ptr.getClass().getCreatureStats(ptr).getMagicEffects().get(ESM::MagicEffect::Charm).getMagnitude();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue