1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-03-28 23:36:42 +00:00

every filters are check during dialogue now. There is a problem with journal.

This commit is contained in:
gugus 2012-03-18 18:58:22 +01:00
parent 7f2ff6f5f1
commit 00d3bc9d23

View file

@ -318,19 +318,7 @@ namespace MWDialogue
case '4'://journal case '4'://journal
if(select.type==ESM::VT_Int) if(select.type==ESM::VT_Int)
{ {
//std::cout << "vtint: " << select.i << std::endl; if(!selectCompare<int,int>(comp,mEnvironment.mJournal->getJournalIndex(name),select.i)) return false;
bool isInJournal;
if(mEnvironment.mJournal->begin()!=mEnvironment.mJournal->end())
{
for(std::deque<MWDialogue::StampedJournalEntry>::const_iterator it = mEnvironment.mJournal->begin();it!=mEnvironment.mJournal->end();it++)
{
if(it->mTopic == name) isInJournal = true;
}
}
else
isInJournal = false;
if(!selectCompare<int,int>(comp,int(isInJournal),select.i)) return false;
} }
else else
throw std::runtime_error ( throw std::runtime_error (
@ -728,7 +716,7 @@ namespace MWDialogue
for(std::list<ESM::DialInfo>::iterator it = actorKnownTopics[keyword].begin(); it != actorKnownTopics[keyword].end();it++) for(std::list<ESM::DialInfo>::iterator it = actorKnownTopics[keyword].begin(); it != actorKnownTopics[keyword].end();it++)
{ {
ESM::DialInfo dial = *it; ESM::DialInfo dial = *it;
if(functionFilter(mActor,dial,true)) if(functionFilter(mActor,dial,true) && isMatching (mActor,dial))
{ {
std::string text = it->response; std::string text = it->response;
std::string script = it->resultScript; std::string script = it->resultScript;
@ -770,7 +758,7 @@ namespace MWDialogue
for(std::list<ESM::DialInfo>::iterator it = iter; it!=actorKnownTopics[mLastTopic].begin();) for(std::list<ESM::DialInfo>::iterator it = iter; it!=actorKnownTopics[mLastTopic].begin();)
{ {
it--; it--;
if(functionFilter(mActor,*it,true)) if(functionFilter(mActor,*it,true) && isMatching (mActor,*it))
{ {
mChoiceMap.clear(); mChoiceMap.clear();
mChoice = -1; mChoice = -1;