1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-12 03:36:32 +00:00
OpenMW/apps/openmw/mwdialogue/journalentry.hpp

78 lines
1.7 KiB
C++
Raw Normal View History

2012-08-11 10:02:51 +00:00
#ifndef GAME_MWDIALOGUE_JOURNALENTRY_H
#define GAME_MWDIALOGUE_JOURNALENTRY_H
2011-04-19 08:54:11 +00:00
#include <string>
2013-12-03 13:28:46 +00:00
namespace ESM
{
struct JournalEntry;
}
namespace MWWorld
{
class Ptr;
}
2011-04-19 08:54:11 +00:00
namespace MWDialogue
{
/// \brief Basic quest/dialogue/topic entry
struct Entry
2011-04-19 08:54:11 +00:00
{
std::string mInfoId;
2013-11-30 10:57:33 +00:00
std::string mText;
std::string mActorName; // optional
2011-04-19 08:54:11 +00:00
Entry();
/// actor is optional
Entry (const std::string& topic, const std::string& infoId, const MWWorld::Ptr& actor);
2013-12-03 13:28:46 +00:00
Entry (const ESM::JournalEntry& record);
std::string getText() const;
2013-12-03 13:28:46 +00:00
void write (ESM::JournalEntry& entry) const;
};
/// \brief A dialogue entry
///
/// Same as entry, but store TopicID
struct JournalEntry : public Entry
{
std::string mTopic;
2011-04-19 08:54:11 +00:00
JournalEntry();
JournalEntry (const std::string& topic, const std::string& infoId, const MWWorld::Ptr& actor);
2011-04-19 08:54:11 +00:00
2013-12-03 13:28:46 +00:00
JournalEntry (const ESM::JournalEntry& record);
void write (ESM::JournalEntry& entry) const;
static JournalEntry makeFromQuest (const std::string& topic, int index);
static std::string idFromIndex (const std::string& topic, int index);
2011-04-19 08:54:11 +00:00
};
2013-04-25 08:27:43 +00:00
/// \brief A quest entry with a timestamp.
struct StampedJournalEntry : public JournalEntry
{
int mDay;
int mMonth;
int mDayOfMonth;
StampedJournalEntry();
StampedJournalEntry (const std::string& topic, const std::string& infoId,
int day, int month, int dayOfMonth);
2013-12-03 13:28:46 +00:00
StampedJournalEntry (const ESM::JournalEntry& record);
void write (ESM::JournalEntry& entry) const;
static StampedJournalEntry makeFromQuest (const std::string& topic, int index);
};
2011-04-19 08:54:11 +00:00
}
#endif