From d4f3430fc66e8bc5db5c2035235a23ff43564485 Mon Sep 17 00:00:00 2001 From: gugus Date: Mon, 19 Mar 2012 19:17:20 +0100 Subject: [PATCH] fix: topics who should not be displayed are not displayed anymore. --- apps/openmw/mwdialogue/dialoguemanager.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/openmw/mwdialogue/dialoguemanager.cpp b/apps/openmw/mwdialogue/dialoguemanager.cpp index 7950a78881..ef68226436 100644 --- a/apps/openmw/mwdialogue/dialoguemanager.cpp +++ b/apps/openmw/mwdialogue/dialoguemanager.cpp @@ -517,7 +517,6 @@ namespace MWDialogue return false; // TODO check DATAstruct - for (std::vector::const_iterator iter (info.selects.begin()); iter != info.selects.end(); ++iter) if (!isMatching (actor, *iter)) @@ -691,7 +690,8 @@ namespace MWDialogue void DialogueManager::updateTopics() { std::list keywordList; - + int choice = mChoice; + mChoice = -1; actorKnownTopics.clear(); MWGui::DialogueWindow* win = mEnvironment.mWindowManager->getDialogueWindow(); ESMS::RecListT::MapType dialogueList = mEnvironment.mWorld->getStore().dialogs.list; @@ -703,7 +703,7 @@ namespace MWDialogue for (std::vector::const_iterator iter (it->second.mInfo.begin()); iter!=it->second.mInfo.end(); ++iter) { - if (isMatching (mActor, *iter) && functionFilter(mActor,*iter,false)) + if (isMatching (mActor, *iter) && functionFilter(mActor,*iter,true)) { actorKnownTopics.push_back(it->first); //does the player know the topic? @@ -717,6 +717,7 @@ namespace MWDialogue } } win->setKeywords(keywordList); + mChoice = choice; } void DialogueManager::keywordSelected(std::string keyword) @@ -726,10 +727,9 @@ namespace MWDialogue if(mDialogueMap.find(keyword) != mDialogueMap.end()) { ESM::Dialogue ndialogue = mDialogueMap[keyword]; - std::vector::const_iterator iter; if(ndialogue.type == ESM::Dialogue::Topic) { - for (iter = ndialogue.mInfo.begin(); + for (std::vector::const_iterator iter = ndialogue.mInfo.begin(); iter!=ndialogue.mInfo.end(); ++iter) { if (isMatching (mActor, *iter) && functionFilter(mActor,*iter,true)) @@ -753,6 +753,7 @@ namespace MWDialogue } } } + std::cout << std::endl << std::endl; updateTopics(); }