Update mLastTopic before executing scripts. In case the script contains ClearInfoActor it erase not the correct topic.

Other correction not linked with the bug:
- reset mActorKnownTopicsFlag at the same time as mActorKnownTopics
- don't call updateTopics in addResponse, it is already handled by the response
callback
pull/581/head
Frederic Chardon 4 years ago committed by psi29a
parent ae1af0e103
commit 12ee42c6f3

@ -41,6 +41,7 @@
Bug #5502: Dead zone for analogue stick movement is too small Bug #5502: Dead zone for analogue stick movement is too small
Bug #5507: Sound volume is not clamped on ingame settings update Bug #5507: Sound volume is not clamped on ingame settings update
Bug #5531: Actors flee using current rotation by axis x Bug #5531: Actors flee using current rotation by axis x
Bug #5548: Certain exhausted topics can be highlighted again even though there's no new dialogue
Feature #390: 3rd person look "over the shoulder" Feature #390: 3rd person look "over the shoulder"
Feature #2386: Distant Statics in the form of Object Paging Feature #2386: Distant Statics in the form of Object Paging
Feature #5297: Add a search function to the "Datafiles" tab of the OpenMW launcher Feature #5297: Add a search function to the "Datafiles" tab of the OpenMW launcher

@ -121,6 +121,7 @@ namespace MWDialogue
mTalkedTo = creatureStats.hasTalkedToPlayer(); mTalkedTo = creatureStats.hasTalkedToPlayer();
mActorKnownTopics.clear(); mActorKnownTopics.clear();
mActorKnownTopicsFlag.clear();
//greeting //greeting
const MWWorld::Store<ESM::Dialogue> &dialogs = const MWWorld::Store<ESM::Dialogue> &dialogs =
@ -300,11 +301,11 @@ namespace MWDialogue
} }
} }
mLastTopic = topic;
executeScript (info->mResultScript, mActor); executeScript (info->mResultScript, mActor);
parseText (info->mResponse); parseText (info->mResponse);
mLastTopic = topic;
} }
} }
@ -323,6 +324,7 @@ namespace MWDialogue
updateGlobals(); updateGlobals();
mActorKnownTopics.clear(); mActorKnownTopics.clear();
mActorKnownTopicsFlag.clear();
const auto& dialogs = MWBase::Environment::get().getWorld()->getStore().get<ESM::Dialogue>(); const auto& dialogs = MWBase::Environment::get().getWorld()->getStore().get<ESM::Dialogue>();

@ -678,7 +678,6 @@ namespace MWGui
{ {
mHistoryContents.push_back(new Response(text, title, needMargin)); mHistoryContents.push_back(new Response(text, title, needMargin));
updateHistory(); updateHistory();
updateTopics();
} }
void DialogueWindow::addMessageBox(const std::string& text) void DialogueWindow::addMessageBox(const std::string& text)

Loading…
Cancel
Save