diff --git a/apps/opencs/CMakeLists.txt b/apps/opencs/CMakeLists.txt index f4846675e0..5e6b853e86 100644 --- a/apps/opencs/CMakeLists.txt +++ b/apps/opencs/CMakeLists.txt @@ -28,7 +28,7 @@ opencs_units_noqt (model/world ) opencs_hdrs_noqt (model/world - columnimp idcollection collection + columnimp idcollection collection info ) diff --git a/apps/opencs/model/world/columnimp.hpp b/apps/opencs/model/world/columnimp.hpp index cddfafb632..dc80f6eeb4 100644 --- a/apps/opencs/model/world/columnimp.hpp +++ b/apps/opencs/model/world/columnimp.hpp @@ -9,6 +9,7 @@ #include "columnbase.hpp" #include "columns.hpp" +#include "info.hpp" namespace CSMWorld { @@ -1334,7 +1335,7 @@ namespace CSMWorld { ESXRecordT record2 = record.get(); - record2.mQuestStatus = static_cast (data.toInt()); + record2.mQuestStatus = static_cast (data.toInt()); record.setModified (record2); } diff --git a/apps/opencs/model/world/data.cpp b/apps/opencs/model/world/data.cpp index d068403701..bfec13f909 100644 --- a/apps/opencs/model/world/data.cpp +++ b/apps/opencs/model/world/data.cpp @@ -149,14 +149,14 @@ CSMWorld::Data::Data() : mRefs (mCells) mJournals.addColumn (new RecordStateColumn); mJournals.addColumn (new DialogueTypeColumn (true)); - mTopicInfos.addColumn (new StringIdColumn); - mTopicInfos.addColumn (new RecordStateColumn); + mTopicInfos.addColumn (new StringIdColumn); + mTopicInfos.addColumn (new RecordStateColumn); - mJournalInfos.addColumn (new StringIdColumn); - mJournalInfos.addColumn (new RecordStateColumn); - mJournalInfos.addColumn (new QuestStatusTypeColumn); - mJournalInfos.addColumn (new QuestIndexColumn); - mJournalInfos.addColumn (new QuestDescriptionColumn); + mJournalInfos.addColumn (new StringIdColumn); + mJournalInfos.addColumn (new RecordStateColumn); + mJournalInfos.addColumn (new QuestStatusTypeColumn); + mJournalInfos.addColumn (new QuestIndexColumn); + mJournalInfos.addColumn (new QuestDescriptionColumn); mCells.addColumn (new StringIdColumn); mCells.addColumn (new RecordStateColumn); diff --git a/apps/opencs/model/world/info.hpp b/apps/opencs/model/world/info.hpp new file mode 100644 index 0000000000..1bcb2dc2d0 --- /dev/null +++ b/apps/opencs/model/world/info.hpp @@ -0,0 +1,14 @@ +#ifndef CSM_WOLRD_INFO_H +#define CSM_WOLRD_INFO_H + +#include + +namespace CSMWorld +{ + struct Info : public ESM::DialInfo + { + std::string mTopicId; + }; +} + +#endif diff --git a/apps/opencs/model/world/infocollection.cpp b/apps/opencs/model/world/infocollection.cpp index 42425ecf57..e21c3d4776 100644 --- a/apps/opencs/model/world/infocollection.cpp +++ b/apps/opencs/model/world/infocollection.cpp @@ -2,15 +2,16 @@ #include "infocollection.hpp" #include +#include -void CSMWorld::InfoCollection::load (const ESM::DialInfo& record, bool base) +void CSMWorld::InfoCollection::load (const Info& record, bool base) { int index = searchId (record.mId); if (index==-1) { // new record - Record record2; + Record record2; record2.mState = base ? RecordBase::State_BaseOnly : RecordBase::State_ModifiedOnly; (base ? record2.mBase : record2.mModified) = record; @@ -19,7 +20,7 @@ void CSMWorld::InfoCollection::load (const ESM::DialInfo& record, bool base) else { // old record - Record record2 = getRecord (index); + Record record2 = getRecord (index); if (base) record2.mBase = record; @@ -56,14 +57,15 @@ void CSMWorld::InfoCollection::load (ESM::ESMReader& reader, bool base, const ES } else { - Record record = getRecord (index); + Record record = getRecord (index); record.mState = RecordBase::State_Deleted; setRecord (index, record); } } else { - ESM::DialInfo record; + Info record; + record.mTopicId = dialogue.mId; record.mId = id; record.load (reader); diff --git a/apps/opencs/model/world/infocollection.hpp b/apps/opencs/model/world/infocollection.hpp index 8bb8e53098..5faf61a8c7 100644 --- a/apps/opencs/model/world/infocollection.hpp +++ b/apps/opencs/model/world/infocollection.hpp @@ -1,9 +1,8 @@ #ifndef CSM_WOLRD_INFOCOLLECTION_H #define CSM_WOLRD_INFOCOLLECTION_H -#include - #include "collection.hpp" +#include "info.hpp" namespace ESM { @@ -12,9 +11,9 @@ namespace ESM namespace CSMWorld { - class InfoCollection : public Collection > + class InfoCollection : public Collection > { - void load (const ESM::DialInfo& record, bool base); + void load (const Info& record, bool base); public: