@@ -45,6 +45,11 @@ namespace MWGui
45
45
mWindow ->addResponse (title, text, mNeedMargin );
46
46
}
47
47
48
+ void updateTopics ()
49
+ {
50
+ mWindow ->updateTopics ();
51
+ }
52
+
48
53
private:
49
54
DialogueWindow* mWindow ;
50
55
bool mNeedMargin ;
@@ -91,6 +96,7 @@ namespace MWGui
91
96
type = MWBase::MechanicsManager::PT_Bribe1000;
92
97
93
98
MWBase::Environment::get ().getDialogueManager ()->persuade (type, mCallback .get ());
99
+ mCallback ->updateTopics ();
94
100
95
101
setVisible (false );
96
102
}
@@ -395,6 +401,8 @@ namespace MWGui
395
401
else if (topic == gmst.find (" sRepair" )->getString ())
396
402
MWBase::Environment::get ().getWindowManager ()->pushGuiMode (GM_MerchantRepair, mPtr );
397
403
}
404
+ else
405
+ updateTopics ();
398
406
}
399
407
}
400
408
@@ -432,7 +440,9 @@ namespace MWGui
432
440
433
441
setTitle (mPtr .getClass ().getName (mPtr ));
434
442
435
- updateTopicsPane ();
443
+ updateTopics ();
444
+ updateTopicsPane (); // force update for new services
445
+
436
446
updateDisposition ();
437
447
restock ();
438
448
}
@@ -620,11 +630,13 @@ namespace MWGui
620
630
void DialogueWindow::onTopicActivated (const std::string &topicId)
621
631
{
622
632
MWBase::Environment::get ().getDialogueManager ()->keywordSelected (topicId, mCallback .get ());
633
+ updateTopics ();
623
634
}
624
635
625
636
void DialogueWindow::onChoiceActivated (int id)
626
637
{
627
638
MWBase::Environment::get ().getDialogueManager ()->questionAnswered (id, mCallback .get ());
639
+ updateTopics ();
628
640
}
629
641
630
642
void DialogueWindow::onGoodbyeActivated ()
0 commit comments