OpenMW
apps/openmw/mwbase/dialoguemanager.hpp
Go to the documentation of this file.
00001 #ifndef GAME_MWBASE_DIALOGUEMANAGER_H
00002 #define GAME_MWBASE_DIALOGUEMANAGER_H
00003 
00004 #include <string>
00005 
00006 namespace MWWorld
00007 {
00008     class Ptr;
00009 }
00010 
00011 namespace MWBase
00012 {
00014     class DialogueManager
00015     {
00016             DialogueManager (const DialogueManager&);
00018 
00019             DialogueManager& operator= (const DialogueManager&);
00021 
00022         public:
00023 
00024             DialogueManager() {}
00025 
00026             virtual void clear() = 0;
00027 
00028             virtual ~DialogueManager() {}
00029 
00030             virtual bool isInChoice() const = 0;
00031 
00032             virtual void startDialogue (const MWWorld::Ptr& actor) = 0;
00033 
00034             virtual void addTopic (const std::string& topic) = 0;
00035 
00036             virtual void askQuestion (const std::string& question,int choice) = 0;
00037 
00038             virtual void goodbye() = 0;
00039 
00040             virtual MWWorld::Ptr getActor() const = 0;
00042 
00043             virtual void say(const MWWorld::Ptr &actor, const std::string &topic) const = 0;
00044 
00045             //calbacks for the GUI
00046             virtual void keywordSelected (const std::string& keyword) = 0;
00047             virtual void goodbyeSelected() = 0;
00048             virtual void questionAnswered (int answer) = 0;
00049 
00050             virtual bool checkServiceRefused () = 0;
00051 
00052             virtual void persuade (int type) = 0;
00053             virtual int getTemporaryDispositionChange () const = 0;
00054             virtual void applyTemporaryDispositionChange (int delta) = 0;
00055     };
00056 }
00057 
00058 #endif