@ -25,7 +25,7 @@ bool MWDialogue::Filter::testActor (const ESM::DialInfo& info) const
// actor id
if ( ! info . mActor . empty ( ) )
{
if ( ! Misc : : StringUtils : : ciEqual ( info . mActor , MWWorld: : Class : : get ( mActor ) . getId ( mActor ) ) )
if ( ! Misc : : StringUtils : : ciEqual ( info . mActor , mActor. getClass ( ) . getId ( mActor ) ) )
return false ;
}
else if ( isCreature )
@ -64,7 +64,7 @@ bool MWDialogue::Filter::testActor (const ESM::DialInfo& info) const
if ( isCreature )
return false ;
MWMechanics : : NpcStats & stats = MWWorld: : Class : : get ( mActor ) . getNpcStats ( mActor ) ;
MWMechanics : : NpcStats & stats = mActor. getClass ( ) . getNpcStats ( mActor ) ;
std : : map < std : : string , int > : : iterator iter = stats . getFactionRanks ( ) . find ( Misc : : StringUtils : : lowerCase ( info . mFaction ) ) ;
if ( iter = = stats . getFactionRanks ( ) . end ( ) )
@ -98,7 +98,7 @@ bool MWDialogue::Filter::testPlayer (const ESM::DialInfo& info) const
// check player faction
if ( ! info . mPcFaction . empty ( ) )
{
MWMechanics : : NpcStats & stats = MWWorld: : Class : : get ( player ) . getNpcStats ( player ) ;
MWMechanics : : NpcStats & stats = player. getClass ( ) . getNpcStats ( player ) ;
std : : map < std : : string , int > : : iterator iter = stats . getFactionRanks ( ) . find ( Misc : : StringUtils : : lowerCase ( info . mPcFaction ) ) ;
if ( iter = = stats . getFactionRanks ( ) . end ( ) )
@ -182,7 +182,7 @@ bool MWDialogue::Filter::testSelectStructNumeric (const SelectWrapper& select) c
case SelectWrapper : : Function_Local :
{
std : : string scriptName = MWWorld: : Class : : get ( mActor ) . getScript ( mActor ) ;
std : : string scriptName = mActor. getClass ( ) . getScript ( mActor ) ;
if ( scriptName . empty ( ) )
return false ; // no script
@ -220,8 +220,8 @@ bool MWDialogue::Filter::testSelectStructNumeric (const SelectWrapper& select) c
{
MWWorld : : Ptr player = MWBase : : Environment : : get ( ) . getWorld ( ) - > getPlayerPtr ( ) ;
float ratio = MWWorld: : Class : : get ( player ) . getCreatureStats ( player ) . getHealth ( ) . getCurrent ( ) /
MWWorld: : Class : : get ( player ) . getCreatureStats ( player ) . getHealth ( ) . getModified ( ) ;
float ratio = player. getClass ( ) . getCreatureStats ( player ) . getHealth ( ) . getCurrent ( ) /
player. getClass ( ) . getCreatureStats ( player ) . getHealth ( ) . getModified ( ) ;
return select . selectCompare ( static_cast < int > ( ratio * 100 ) ) ;
}
@ -230,7 +230,7 @@ bool MWDialogue::Filter::testSelectStructNumeric (const SelectWrapper& select) c
{
MWWorld : : Ptr player = MWBase : : Environment : : get ( ) . getWorld ( ) - > getPlayerPtr ( ) ;
float value = MWWorld: : Class : : get ( player ) . getCreatureStats ( player ) .
float value = player. getClass ( ) . getCreatureStats ( player ) .
getDynamic ( select . getArgument ( ) ) . getCurrent ( ) ;
return select . selectCompare ( value ) ;
@ -238,8 +238,8 @@ bool MWDialogue::Filter::testSelectStructNumeric (const SelectWrapper& select) c
case SelectWrapper : : Function_HealthPercent :
{
float ratio = MWWorld: : Class : : get ( mActor ) . getCreatureStats ( mActor ) . getHealth ( ) . getCurrent ( ) /
MWWorld: : Class : : get ( mActor ) . getCreatureStats ( mActor ) . getHealth ( ) . getModified ( ) ;
float ratio = mActor. getClass ( ) . getCreatureStats ( mActor ) . getHealth ( ) . getCurrent ( ) /
mActor. getClass ( ) . getCreatureStats ( mActor ) . getHealth ( ) . getModified ( ) ;
return select . selectCompare ( ratio ) ;
}
@ -262,7 +262,7 @@ int MWDialogue::Filter::getSelectStructInteger (const SelectWrapper& select) con
case SelectWrapper : : Function_Item :
{
MWWorld : : ContainerStore & store = MWWorld: : Class : : get ( player ) . getContainerStore ( player ) ;
MWWorld : : ContainerStore & store = player. getClass ( ) . getContainerStore ( player ) ;
int sum = 0 ;
@ -285,29 +285,29 @@ int MWDialogue::Filter::getSelectStructInteger (const SelectWrapper& select) con
case SelectWrapper : : Function_AiSetting :
return MWWorld: : Class : : get ( mActor ) . getCreatureStats ( mActor ) . getAiSetting (
return mActor. getClass ( ) . getCreatureStats ( mActor ) . getAiSetting (
( MWMechanics : : CreatureStats : : AiSetting ) select . getArgument ( ) ) . getModified ( ) ;
case SelectWrapper : : Function_PcAttribute :
return MWWorld: : Class : : get ( player ) . getCreatureStats ( player ) .
return player. getClass ( ) . getCreatureStats ( player ) .
getAttribute ( select . getArgument ( ) ) . getModified ( ) ;
case SelectWrapper : : Function_PcSkill :
return static_cast < int > ( MWWorld: : Class : : get ( player ) .
return static_cast < int > ( player. getClass ( ) .
getNpcStats ( player ) . getSkill ( select . getArgument ( ) ) . getModified ( ) ) ;
case SelectWrapper : : Function_FriendlyHit :
{
int hits = MWWorld: : Class : : get ( mActor ) . getCreatureStats ( mActor ) . getFriendlyHits ( ) ;
int hits = mActor. getClass ( ) . getCreatureStats ( mActor ) . getFriendlyHits ( ) ;
return hits > 4 ? 4 : hits ;
}
case SelectWrapper : : Function_PcLevel :
return MWWorld: : Class : : get ( player ) . getCreatureStats ( player ) . getLevel ( ) ;
return player. getClass ( ) . getCreatureStats ( player ) . getLevel ( ) ;
case SelectWrapper : : Function_PcGender :
@ -315,7 +315,7 @@ int MWDialogue::Filter::getSelectStructInteger (const SelectWrapper& select) con
case SelectWrapper : : Function_PcClothingModifier :
{
MWWorld : : InventoryStore & store = MWWorld: : Class : : get ( player ) . getInventoryStore ( player ) ;
MWWorld : : InventoryStore & store = player. getClass ( ) . getInventoryStore ( player ) ;
int value = 0 ;
@ -324,7 +324,7 @@ int MWDialogue::Filter::getSelectStructInteger (const SelectWrapper& select) con
MWWorld : : ContainerStoreIterator slot = store . getSlot ( i ) ;
if ( slot ! = store . end ( ) )
value + = MWWorld: : Class : : get ( * slot ) . getValue ( * slot ) ;
value + = slot- > getClass ( ) . getValue ( * slot ) ;
}
return value ;
@ -332,15 +332,15 @@ int MWDialogue::Filter::getSelectStructInteger (const SelectWrapper& select) con
case SelectWrapper : : Function_PcCrimeLevel :
return MWWorld: : Class : : get ( player ) . getNpcStats ( player ) . getBounty ( ) ;
return player. getClass ( ) . getNpcStats ( player ) . getBounty ( ) ;
case SelectWrapper : : Function_RankRequirement :
{
if ( MWWorld: : Class : : get ( mActor ) . getNpcStats ( mActor ) . getFactionRanks ( ) . empty ( ) )
if ( mActor. getClass ( ) . getNpcStats ( mActor ) . getFactionRanks ( ) . empty ( ) )
return 0 ;
std : : string faction =
MWWorld: : Class : : get ( mActor ) . getNpcStats ( mActor ) . getFactionRanks ( ) . begin ( ) - > first ;
mActor. getClass ( ) . getNpcStats ( mActor ) . getFactionRanks ( ) . begin ( ) - > first ;
int rank = getFactionRank ( player , faction ) ;
@ -360,11 +360,11 @@ int MWDialogue::Filter::getSelectStructInteger (const SelectWrapper& select) con
case SelectWrapper : : Function_Level :
return MWWorld: : Class : : get ( mActor ) . getCreatureStats ( mActor ) . getLevel ( ) ;
return mActor. getClass ( ) . getCreatureStats ( mActor ) . getLevel ( ) ;
case SelectWrapper : : Function_PCReputation :
return MWWorld: : Class : : get ( player ) . getNpcStats ( player ) . getReputation ( ) ;
return player. getClass ( ) . getNpcStats ( player ) . getReputation ( ) ;
case SelectWrapper : : Function_Weather :
@ -372,15 +372,15 @@ int MWDialogue::Filter::getSelectStructInteger (const SelectWrapper& select) con
case SelectWrapper : : Function_Reputation :
return MWWorld: : Class : : get ( mActor ) . getNpcStats ( mActor ) . getReputation ( ) ;
return mActor. getClass ( ) . getNpcStats ( mActor ) . getReputation ( ) ;
case SelectWrapper : : Function_FactionRankDiff :
{
if ( MWWorld: : Class : : get ( mActor ) . getNpcStats ( mActor ) . getFactionRanks ( ) . empty ( ) )
if ( mActor. getClass ( ) . getNpcStats ( mActor ) . getFactionRanks ( ) . empty ( ) )
return 0 ;
std : : pair < std : : string , int > faction =
* MWWorld: : Class : : get ( mActor ) . getNpcStats ( mActor ) . getFactionRanks ( ) . begin ( ) ;
* mActor. getClass ( ) . getNpcStats ( mActor ) . getFactionRanks ( ) . begin ( ) ;
int rank = getFactionRank ( player , faction . first ) ;
@ -389,25 +389,25 @@ int MWDialogue::Filter::getSelectStructInteger (const SelectWrapper& select) con
case SelectWrapper : : Function_WerewolfKills :
return MWWorld: : Class : : get ( player ) . getNpcStats ( player ) . getWerewolfKills ( ) ;
return player. getClass ( ) . getNpcStats ( player ) . getWerewolfKills ( ) ;
case SelectWrapper : : Function_RankLow :
case SelectWrapper : : Function_RankHigh :
{
bool low = select . getFunction ( ) = = SelectWrapper : : Function_RankLow ;
if ( MWWorld: : Class : : get ( mActor ) . getNpcStats ( mActor ) . getFactionRanks ( ) . empty ( ) )
if ( mActor. getClass ( ) . getNpcStats ( mActor ) . getFactionRanks ( ) . empty ( ) )
return 0 ;
std : : string factionId =
MWWorld: : Class : : get ( mActor ) . getNpcStats ( mActor ) . getFactionRanks ( ) . begin ( ) - > first ;
mActor. getClass ( ) . getNpcStats ( mActor ) . getFactionRanks ( ) . begin ( ) - > first ;
int value = 0 ;
const ESM : : Faction & faction =
* MWBase : : Environment : : get ( ) . getWorld ( ) - > getStore ( ) . get < ESM : : Faction > ( ) . find ( factionId ) ;
MWMechanics : : NpcStats & playerStats = MWWorld: : Class : : get ( player ) . getNpcStats ( player ) ;
MWMechanics : : NpcStats & playerStats = player. getClass ( ) . getNpcStats ( player ) ;
for ( std : : vector < ESM : : Faction : : Reaction > : : const_iterator iter ( faction . mReactions . begin ( ) ) ;
iter ! = faction . mReactions . end ( ) ; + + iter )
@ -436,7 +436,7 @@ bool MWDialogue::Filter::getSelectStructBoolean (const SelectWrapper& select) co
case SelectWrapper : : Function_NotId :
return ! Misc : : StringUtils : : ciEqual ( MWWorld: : Class : : get ( mActor ) . getId ( mActor ) , select . getName ( ) ) ;
return ! Misc : : StringUtils : : ciEqual ( mActor. getClass ( ) . getId ( mActor ) , select . getName ( ) ) ;
case SelectWrapper : : Function_NotFaction :
@ -456,7 +456,7 @@ bool MWDialogue::Filter::getSelectStructBoolean (const SelectWrapper& select) co
case SelectWrapper : : Function_NotLocal :
{
std : : string scriptName = MWWorld: : Class : : get ( mActor ) . getScript ( mActor ) ;
std : : string scriptName = mActor. getClass ( ) . getScript ( mActor ) ;
if ( scriptName . empty ( ) )
// This actor has no attached script, so there is no local variable
@ -489,36 +489,36 @@ bool MWDialogue::Filter::getSelectStructBoolean (const SelectWrapper& select) co
case SelectWrapper : : Function_SameFaction :
return MWWorld: : Class : : get ( mActor ) . getNpcStats ( mActor ) . isSameFaction (
MWWorld: : Class : : get ( player ) . getNpcStats ( player ) ) ;
return mActor. getClass ( ) . getNpcStats ( mActor ) . isSameFaction (
player. getClass ( ) . getNpcStats ( player ) ) ;
case SelectWrapper : : Function_PcCommonDisease :
return MWWorld: : Class : : get ( player ) . getCreatureStats ( player ) . hasCommonDisease ( ) ;
return player. getClass ( ) . getCreatureStats ( player ) . hasCommonDisease ( ) ;
case SelectWrapper : : Function_PcBlightDisease :
return MWWorld: : Class : : get ( player ) . getCreatureStats ( player ) . hasBlightDisease ( ) ;
return player. getClass ( ) . getCreatureStats ( player ) . hasBlightDisease ( ) ;
case SelectWrapper : : Function_PcCorprus :
return MWWorld: : Class : : get ( player ) . getCreatureStats ( player ) .
return player. getClass ( ) . getCreatureStats ( player ) .
getMagicEffects ( ) . get ( ESM : : MagicEffect : : Corprus ) . mMagnitude ! = 0 ;
case SelectWrapper : : Function_PcExpelled :
{
if ( MWWorld: : Class : : get ( mActor ) . getNpcStats ( mActor ) . getFactionRanks ( ) . empty ( ) )
if ( mActor. getClass ( ) . getNpcStats ( mActor ) . getFactionRanks ( ) . empty ( ) )
return false ;
std : : string faction =
MWWorld: : Class : : get ( mActor ) . getNpcStats ( mActor ) . getFactionRanks ( ) . begin ( ) - > first ;
mActor. getClass ( ) . getNpcStats ( mActor ) . getFactionRanks ( ) . begin ( ) - > first ;
return player . getClass ( ) . getNpcStats ( player ) . getExpelled ( faction ) ;
}
case SelectWrapper : : Function_PcVampire :
return MWWorld: : Class : : get ( player ) . getCreatureStats ( player ) . getMagicEffects ( ) .
return player. getClass ( ) . getCreatureStats ( player ) . getMagicEffects ( ) .
get ( ESM : : MagicEffect : : Vampirism ) . mMagnitude > 0 ;
case SelectWrapper : : Function_TalkedToPc :
@ -527,7 +527,7 @@ bool MWDialogue::Filter::getSelectStructBoolean (const SelectWrapper& select) co
case SelectWrapper : : Function_Alarmed :
return MWWorld: : Class : : get ( mActor ) . getCreatureStats ( mActor ) . isAlarmed ( ) ;
return mActor. getClass ( ) . getCreatureStats ( mActor ) . isAlarmed ( ) ;
case SelectWrapper : : Function_Detected :
@ -535,11 +535,11 @@ bool MWDialogue::Filter::getSelectStructBoolean (const SelectWrapper& select) co
case SelectWrapper : : Function_Attacked :
return MWWorld: : Class : : get ( mActor ) . getCreatureStats ( mActor ) . getAttacked ( ) ;
return mActor. getClass ( ) . getCreatureStats ( mActor ) . getAttacked ( ) ;
case SelectWrapper : : Function_ShouldAttack :
return MWWorld: : Class : : get ( mActor ) . getCreatureStats ( mActor ) . isHostile ( ) ;
return mActor. getClass ( ) . getCreatureStats ( mActor ) . isHostile ( ) ;
case SelectWrapper : : Function_CreatureTargetted :
@ -547,7 +547,7 @@ bool MWDialogue::Filter::getSelectStructBoolean (const SelectWrapper& select) co
case SelectWrapper : : Function_Werewolf :
return MWWorld: : Class : : get ( mActor ) . getNpcStats ( mActor ) . isWerewolf ( ) ;
return mActor. getClass ( ) . getNpcStats ( mActor ) . isWerewolf ( ) ;
default :
@ -557,7 +557,7 @@ bool MWDialogue::Filter::getSelectStructBoolean (const SelectWrapper& select) co
int MWDialogue : : Filter : : getFactionRank ( const MWWorld : : Ptr & actor , const std : : string & factionId ) const
{
MWMechanics : : NpcStats & stats = MWWorld: : Class : : get ( actor ) . getNpcStats ( actor ) ;
MWMechanics : : NpcStats & stats = actor. getClass ( ) . getNpcStats ( actor ) ;
std : : map < std : : string , int > : : const_iterator iter = stats . getFactionRanks ( ) . find ( factionId ) ;
@ -573,13 +573,13 @@ bool MWDialogue::Filter::hasFactionRankSkillRequirements (const MWWorld::Ptr& ac
if ( rank < 0 | | rank > = 10 )
throw std : : runtime_error ( " rank index out of range " ) ;
if ( ! MWWorld: : Class : : get ( actor ) . getNpcStats ( actor ) . hasSkillsForRank ( factionId , rank ) )
if ( ! actor. getClass ( ) . getNpcStats ( actor ) . hasSkillsForRank ( factionId , rank ) )
return false ;
const ESM : : Faction & faction =
* MWBase : : Environment : : get ( ) . getWorld ( ) - > getStore ( ) . get < ESM : : Faction > ( ) . find ( factionId ) ;
MWMechanics : : CreatureStats & stats = MWWorld: : Class : : get ( actor ) . getCreatureStats ( actor ) ;
MWMechanics : : CreatureStats & stats = actor. getClass ( ) . getCreatureStats ( actor ) ;
return stats . getAttribute ( faction . mData . mAttribute [ 0 ] ) . getBase ( ) > = faction . mData . mRankData [ rank ] . mAttribute1 & &
stats . getAttribute ( faction . mData . mAttribute [ 1 ] ) . getBase ( ) > = faction . mData . mRankData [ rank ] . mAttribute2 ;
@ -591,7 +591,7 @@ bool MWDialogue::Filter::hasFactionRankReputationRequirements (const MWWorld::Pt
if ( rank < 0 | | rank > = 10 )
throw std : : runtime_error ( " rank index out of range " ) ;
MWMechanics : : NpcStats & stats = MWWorld: : Class : : get ( actor ) . getNpcStats ( actor ) ;
MWMechanics : : NpcStats & stats = actor. getClass ( ) . getNpcStats ( actor ) ;
const ESM : : Faction & faction =
* MWBase : : Environment : : get ( ) . getWorld ( ) - > getStore ( ) . get < ESM : : Faction > ( ) . find ( factionId ) ;
@ -621,7 +621,7 @@ std::vector<const ESM::DialInfo *> MWDialogue::Filter::list (const ESM::Dialogue
bool infoRefusal = false ;
// Iterate over topic responses to find a matching one
for ( std: : vector < ESM : : DialInfo > : : const_iterator iter = dialogue . mInfo . begin ( ) ;
for ( ESM: : Dialogue : : InfoContainer : : const_iterator iter = dialogue . mInfo . begin ( ) ;
iter ! = dialogue . mInfo . end ( ) ; + + iter )
{
if ( testActor ( * iter ) & & testPlayer ( * iter ) & & testSelectStructs ( * iter ) )
@ -646,7 +646,7 @@ std::vector<const ESM::DialInfo *> MWDialogue::Filter::list (const ESM::Dialogue
const ESM : : Dialogue & infoRefusalDialogue = * dialogues . find ( " Info Refusal " ) ;
for ( std: : vector < ESM : : DialInfo > : : const_iterator iter = infoRefusalDialogue . mInfo . begin ( ) ;
for ( ESM: : Dialogue : : InfoContainer : : const_iterator iter = infoRefusalDialogue . mInfo . begin ( ) ;
iter ! = infoRefusalDialogue . mInfo . end ( ) ; + + iter )
if ( testActor ( * iter ) & & testPlayer ( * iter ) & & testSelectStructs ( * iter ) & & testDisposition ( * iter , invertDisposition ) ) {
infos . push_back ( & * iter ) ;
@ -660,7 +660,7 @@ std::vector<const ESM::DialInfo *> MWDialogue::Filter::list (const ESM::Dialogue
bool MWDialogue : : Filter : : responseAvailable ( const ESM : : Dialogue & dialogue ) const
{
for ( std: : vector < ESM : : DialInfo > : : const_iterator iter = dialogue . mInfo . begin ( ) ;
for ( ESM: : Dialogue : : InfoContainer : : const_iterator iter = dialogue . mInfo . begin ( ) ;
iter ! = dialogue . mInfo . end ( ) ; + + iter )
{
if ( testActor ( * iter ) & & testPlayer ( * iter ) & & testSelectStructs ( * iter ) )