forked from mirror/openmw-tes3mp
added topic tracking
This commit is contained in:
parent
7a1b215b6a
commit
e18dde4571
2 changed files with 38 additions and 0 deletions
|
@ -43,6 +43,21 @@ namespace MWDialogue
|
||||||
quest.setIndex (index, *mEnvironment.mWorld);
|
quest.setIndex (index, *mEnvironment.mWorld);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Journal::addTopic (const std::string& topicId, const std::string& infoId)
|
||||||
|
{
|
||||||
|
TTopicContainer::iterator iter = mTopics.find (topicId);
|
||||||
|
|
||||||
|
if (iter==mTopics.end())
|
||||||
|
{
|
||||||
|
std::pair<TTopicContainer::iterator, bool> result
|
||||||
|
= mTopics.insert (std::make_pair (topicId, Topic (topicId)));
|
||||||
|
|
||||||
|
iter = result.first;
|
||||||
|
}
|
||||||
|
|
||||||
|
iter->second.addEntry (JournalEntry (topicId, infoId), *mEnvironment.mWorld);
|
||||||
|
}
|
||||||
|
|
||||||
int Journal::getJournalIndex (const std::string& id) const
|
int Journal::getJournalIndex (const std::string& id) const
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -67,4 +82,14 @@ namespace MWDialogue
|
||||||
{
|
{
|
||||||
return mQuests.end();
|
return mQuests.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Journal::TTopicIter Journal::topicBegin() const
|
||||||
|
{
|
||||||
|
return mTopics.begin();
|
||||||
|
}
|
||||||
|
|
||||||
|
Journal::TTopicIter Journal::topicEnd() const
|
||||||
|
{
|
||||||
|
return mTopics.end();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,12 +24,15 @@ namespace MWDialogue
|
||||||
typedef TEntryContainer::const_iterator TEntryIter;
|
typedef TEntryContainer::const_iterator TEntryIter;
|
||||||
typedef std::map<std::string, Quest> TQuestContainer; // topc, quest
|
typedef std::map<std::string, Quest> TQuestContainer; // topc, quest
|
||||||
typedef TQuestContainer::const_iterator TQuestIter;
|
typedef TQuestContainer::const_iterator TQuestIter;
|
||||||
|
typedef std::map<std::string, Topic> TTopicContainer; // topic-id, topic-content
|
||||||
|
typedef TTopicContainer::const_iterator TTopicIter;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
MWWorld::Environment& mEnvironment;
|
MWWorld::Environment& mEnvironment;
|
||||||
TEntryContainer mJournal;
|
TEntryContainer mJournal;
|
||||||
TQuestContainer mQuests;
|
TQuestContainer mQuests;
|
||||||
|
TTopicContainer mTopics;
|
||||||
|
|
||||||
Quest& getQuest (const std::string& id);
|
Quest& getQuest (const std::string& id);
|
||||||
|
|
||||||
|
@ -46,6 +49,8 @@ namespace MWDialogue
|
||||||
int getJournalIndex (const std::string& id) const;
|
int getJournalIndex (const std::string& id) const;
|
||||||
///< Get the journal index.
|
///< Get the journal index.
|
||||||
|
|
||||||
|
void addTopic (const std::string& topicId, const std::string& infoId);
|
||||||
|
|
||||||
TEntryIter begin() const;
|
TEntryIter begin() const;
|
||||||
///< Iterator pointing to the begin of the main journal.
|
///< Iterator pointing to the begin of the main journal.
|
||||||
///
|
///
|
||||||
|
@ -59,6 +64,14 @@ namespace MWDialogue
|
||||||
|
|
||||||
TQuestIter questEnd() const;
|
TQuestIter questEnd() const;
|
||||||
///< Iterator pointing past the last quest.
|
///< Iterator pointing past the last quest.
|
||||||
|
|
||||||
|
TTopicIter topicBegin() const;
|
||||||
|
///< Iterator pointing to the first topic (sorted by topic ID)
|
||||||
|
///
|
||||||
|
/// \note The topic ID is identical with the user-visible topic string.
|
||||||
|
|
||||||
|
TTopicIter topicEnd() const;
|
||||||
|
///< Iterator pointing past the last topic.
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue