diff --git a/apps/openmw/mwbase/dialoguemanager.hpp b/apps/openmw/mwbase/dialoguemanager.hpp index 18f249e56..3771f0a3d 100644 --- a/apps/openmw/mwbase/dialoguemanager.hpp +++ b/apps/openmw/mwbase/dialoguemanager.hpp @@ -81,6 +81,16 @@ namespace MWBase /// Removes the last added topic response for the given actor from the journal virtual void clearInfoActor (const MWWorld::Ptr& actor) const = 0; + + /* + Start of tes3mp addition + + Declare this method here so it can be used from outside of MWDialogue::DialogueManager + */ + virtual void updateTopics() = 0; + /* + End of tes3mp addition + */ }; } diff --git a/apps/openmw/mwmp/LocalPlayer.cpp b/apps/openmw/mwmp/LocalPlayer.cpp index bd1dcae96..4dcff40d4 100644 --- a/apps/openmw/mwmp/LocalPlayer.cpp +++ b/apps/openmw/mwmp/LocalPlayer.cpp @@ -687,6 +687,9 @@ void LocalPlayer::addTopics() mwmp::Topic topic = topicChanges.topics.at(i); MWBase::Environment::get().getDialogueManager()->addTopic(topic.topicId); + + if (MWBase::Environment::get().getWindowManager()->containsMode(MWGui::GM_Dialogue)) + MWBase::Environment::get().getDialogueManager()->updateTopics(); } }