Any QuestObject is an independent game entity which contains information how the engine should react and affect your story. They are just a storages of data which can't exist without Controllers.

All data that describes a QuestObject is a combined congestion of tiny units of game and media events, like Sound, Picture, Music and even Story Trigger! They affect the game process every time QuestObject returns an information to its Controller.


Implementation in code

QuestObject is highest abstract class which gives a life to other, more concrete and exact entities.

Visual interpretation of any Object

class QuestObject
{
private:
    QuestDialogue dialogue;
    
    bool triggeredFlag = false;

public:
    virtual ~QuestObject() = 0;

	  void          setDialogue();
    QuestDialogue getDialogue();
};

Source

QuestObject.h QuestObject.cpp