|
|
|
@ -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))
|
|
|
|
|