From 906b263a2d69d4ae1f019212aec860d65cdfc0a2 Mon Sep 17 00:00:00 2001 From: David Cernat Date: Wed, 31 May 2017 06:51:50 +0300 Subject: [PATCH] [Client] Update topics in current dialogue screen when receiving PlayerTopic packets --- apps/openmw/mwbase/dialoguemanager.hpp | 10 ++++++++++ apps/openmw/mwmp/LocalPlayer.cpp | 3 +++ 2 files changed, 13 insertions(+) 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(); } }