OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
dialoguemanager.hpp
Go to the documentation of this file.
1 #ifndef GAME_MWBASE_DIALOGUEMANAGER_H
2 #define GAME_MWBASE_DIALOGUEMANAGER_H
3 
4 #include <string>
5 #include <vector>
6 #include <list>
7 
8 #include <stdint.h>
9 
10 namespace Loading
11 {
12  class Listener;
13 }
14 
15 namespace ESM
16 {
17  class ESMReader;
18  class ESMWriter;
19 }
20 
21 namespace MWWorld
22 {
23  class Ptr;
24 }
25 
26 namespace MWBase
27 {
30  {
33 
36 
37  public:
38 
40  {
41  public:
42  virtual ~ResponseCallback() = default;
43  virtual void addResponse(const std::string& title, const std::string& text) = 0;
44  };
45 
47 
48  virtual void clear() = 0;
49 
50  virtual ~DialogueManager() {}
51 
52  virtual bool isInChoice() const = 0;
53 
54  virtual bool startDialogue (const MWWorld::Ptr& actor, ResponseCallback* callback) = 0;
55 
56  virtual void addTopic (const std::string& topic) = 0;
57 
58  virtual void addChoice (const std::string& text,int choice) = 0;
59  virtual const std::vector<std::pair<std::string, int> >& getChoices() = 0;
60 
61  virtual bool isGoodbye() = 0;
62 
63  virtual void goodbye() = 0;
64 
65  virtual void say(const MWWorld::Ptr &actor, const std::string &topic) = 0;
66 
67  virtual void keywordSelected (const std::string& keyword, ResponseCallback* callback) = 0;
68  virtual void goodbyeSelected() = 0;
69  virtual void questionAnswered (int answer, ResponseCallback* callback) = 0;
70 
71  virtual std::list<std::string> getAvailableTopics() = 0;
72 
73  virtual bool checkServiceRefused (ResponseCallback* callback) = 0;
74 
75  virtual void persuade (int type, ResponseCallback* callback) = 0;
76  virtual int getTemporaryDispositionChange () const = 0;
77 
79  virtual void applyBarterDispositionChange (int delta) = 0;
80 
81  virtual int countSavedGameRecords() const = 0;
82 
83  virtual void write (ESM::ESMWriter& writer, Loading::Listener& progress) const = 0;
84 
85  virtual void readRecord (ESM::ESMReader& reader, uint32_t type) = 0;
86 
88  virtual void modFactionReaction (const std::string& faction1, const std::string& faction2, int diff) = 0;
89 
90  virtual void setFactionReaction (const std::string& faction1, const std::string& faction2, int absolute) = 0;
91 
93  virtual int getFactionReaction (const std::string& faction1, const std::string& faction2) const = 0;
94 
96  virtual void clearInfoActor (const MWWorld::Ptr& actor) const = 0;
97  };
98 }
99 
100 #endif
Interface for dialogue manager (implemented in MWDialogue)
Definition: dialoguemanager.hpp:29
virtual void addChoice(const std::string &text, int choice)=0
Definition: esmreader.hpp:21
virtual void clear()=0
virtual void say(const MWWorld::Ptr &actor, const std::string &topic)=0
virtual int countSavedGameRecords() const =0
virtual void write(ESM::ESMWriter &writer, Loading::Listener &progress) const =0
virtual void clearInfoActor(const MWWorld::Ptr &actor) const =0
Removes the last added topic response for the given actor from the journal.
Definition: loadinglistener.hpp:8
virtual void applyBarterDispositionChange(int delta)=0
virtual const std::vector< std::pair< std::string, int > > & getChoices()=0
Definition: esmwriter.hpp:17
virtual void questionAnswered(int answer, ResponseCallback *callback)=0
DialogueManager()
Definition: dialoguemanager.hpp:46
virtual int getTemporaryDispositionChange() const =0
virtual void setFactionReaction(const std::string &faction1, const std::string &faction2, int absolute)=0
virtual bool isInChoice() const =0
virtual void goodbye()=0
DialogueManager & operator=(const DialogueManager &)
not implemented
virtual void readRecord(ESM::ESMReader &reader, uint32_t type)=0
Definition: dialoguemanager.hpp:39
virtual bool checkServiceRefused(ResponseCallback *callback)=0
virtual bool startDialogue(const MWWorld::Ptr &actor, ResponseCallback *callback)=0
virtual void addResponse(const std::string &title, const std::string &text)=0
virtual void goodbyeSelected()=0
virtual ~DialogueManager()
Definition: dialoguemanager.hpp:50
virtual std::list< std::string > getAvailableTopics()=0
Pointer to a LiveCellRef.
Definition: ptr.hpp:19
virtual void persuade(int type, ResponseCallback *callback)=0
virtual int getFactionReaction(const std::string &faction1, const std::string &faction2) const =0
virtual void modFactionReaction(const std::string &faction1, const std::string &faction2, int diff)=0
Changes faction1's opinion of faction2 by diff.
virtual bool isGoodbye()=0
virtual void addTopic(const std::string &topic)=0
virtual void keywordSelected(const std::string &keyword, ResponseCallback *callback)=0