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.
openmw/apps/opencs/view/world/dialoguecreator.cpp

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);
}