mirror of https://github.com/OpenMW/openmw.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.3 KiB
C++
41 lines
1.3 KiB
C++
#include "dialoguecreator.hpp"
|
|
|
|
#include <apps/opencs/model/doc/document.hpp>
|
|
#include <apps/opencs/model/world/columns.hpp>
|
|
#include <apps/opencs/model/world/data.hpp>
|
|
#include <apps/opencs/view/world/genericcreator.hpp>
|
|
|
|
#include <components/esm3/loaddial.hpp>
|
|
|
|
#include "../../model/world/commands.hpp"
|
|
#include "../../model/world/idtable.hpp"
|
|
|
|
class QUndoStack;
|
|
|
|
void CSVWorld::DialogueCreator::configureCreateCommand(CSMWorld::CreateCommand& command) const
|
|
{
|
|
int index = dynamic_cast<CSMWorld::IdTable&>(*getData().getTableModel(getCollectionId()))
|
|
.findColumnIndex(CSMWorld::Columns::ColumnId_DialogueType);
|
|
|
|
command.addValue(index, mType);
|
|
}
|
|
|
|
CSVWorld::DialogueCreator::DialogueCreator(
|
|
CSMWorld::Data& data, QUndoStack& undoStack, const CSMWorld::UniversalId& id, int type)
|
|
: GenericCreator(data, undoStack, id, true)
|
|
, mType(type)
|
|
{
|
|
}
|
|
|
|
CSVWorld::Creator* CSVWorld::TopicCreatorFactory::makeCreator(
|
|
CSMDoc::Document& document, const CSMWorld::UniversalId& id) const
|
|
{
|
|
return new DialogueCreator(document.getData(), document.getUndoStack(), id, ESM::Dialogue::Topic);
|
|
}
|
|
|
|
CSVWorld::Creator* CSVWorld::JournalCreatorFactory::makeCreator(
|
|
CSMDoc::Document& document, const CSMWorld::UniversalId& id) const
|
|
{
|
|
return new DialogueCreator(document.getData(), document.getUndoStack(), id, ESM::Dialogue::Journal);
|
|
}
|