openmw/components/esm/loaddial.hpp

52 lines
956 B
C++
Raw Normal View History

2012-09-23 22:11:08 +04:00
#ifndef OPENMW_ESM_DIAL_H
#define OPENMW_ESM_DIAL_H
2012-10-01 00:51:54 +04:00
#include <string>
2014-02-20 16:59:20 +01:00
#include <list>
2010-08-06 15:23:13 +02:00
#include "loadinfo.hpp"
namespace ESM
{
2012-10-01 00:51:54 +04:00
class ESMReader;
class ESMWriter;
/*
* Dialogue topic and journal entries. The actual data is contained in
* the INFO records following the DIAL.
*/
struct Dialogue
{
static unsigned int sRecordId;
enum Type
{
Topic = 0,
Voice = 1,
Greeting = 2,
Persuasion = 3,
Journal = 4,
Deleted = -1
};
std::string mId;
signed char mType;
2014-02-20 16:59:20 +01:00
typedef std::list<DialInfo> InfoContainer;
InfoContainer mInfo;
void load(ESMReader &esm);
void save(ESMWriter &esm) const;
2013-10-20 17:13:31 +02:00
2014-02-20 16:59:20 +01:00
/// @param merge Merge with existing list, or just push each record to the end of the list?
void addInfo (const ESM::DialInfo& info, bool merge);
2013-10-20 17:13:31 +02:00
void blank();
///< Set record to default state (does not touch the ID and does not change the type).
};
}
#endif