forked from teamnwah/openmw-tes3coop
added missing column for misc record
This commit is contained in:
parent
862e568f9b
commit
8d78bea4aa
3 changed files with 48 additions and 2 deletions
|
@ -387,3 +387,31 @@ void CSMWorld::LightRefIdAdapter::setData (const RefIdColumn *column, RefIdData&
|
||||||
InventoryRefIdAdapter<ESM::Light>::setData (column, data, index, value);
|
InventoryRefIdAdapter<ESM::Light>::setData (column, data, index, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CSMWorld::MiscRefIdAdapter::MiscRefIdAdapter (const InventoryColumns& columns, const RefIdColumn *key)
|
||||||
|
: InventoryRefIdAdapter<ESM::Miscellaneous> (UniversalId::Type_Miscellaneous, columns), mKey (key)
|
||||||
|
{}
|
||||||
|
|
||||||
|
QVariant CSMWorld::MiscRefIdAdapter::getData (const RefIdColumn *column, const RefIdData& data,
|
||||||
|
int index) const
|
||||||
|
{
|
||||||
|
const Record<ESM::Miscellaneous>& record = static_cast<const Record<ESM::Miscellaneous>&> (
|
||||||
|
data.getRecord (RefIdData::LocalIndex (index, UniversalId::Type_Miscellaneous)));
|
||||||
|
|
||||||
|
if (column==mKey)
|
||||||
|
return record.get().mData.mIsKey!=0;
|
||||||
|
|
||||||
|
return InventoryRefIdAdapter<ESM::Miscellaneous>::getData (column, data, index);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSMWorld::MiscRefIdAdapter::setData (const RefIdColumn *column, RefIdData& data, int index,
|
||||||
|
const QVariant& value) const
|
||||||
|
{
|
||||||
|
Record<ESM::Miscellaneous>& record = static_cast<Record<ESM::Miscellaneous>&> (
|
||||||
|
data.getRecord (RefIdData::LocalIndex (index, UniversalId::Type_Miscellaneous)));
|
||||||
|
|
||||||
|
if (column==mKey)
|
||||||
|
record.get().mData.mIsKey = value.toInt();
|
||||||
|
else
|
||||||
|
InventoryRefIdAdapter<ESM::Miscellaneous>::setData (column, data, index, value);
|
||||||
|
}
|
||||||
|
|
|
@ -687,6 +687,22 @@ namespace CSMWorld
|
||||||
const QVariant& value) const;
|
const QVariant& value) const;
|
||||||
///< If the data type does not match an exception is thrown.
|
///< If the data type does not match an exception is thrown.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class MiscRefIdAdapter : public InventoryRefIdAdapter<ESM::Miscellaneous>
|
||||||
|
{
|
||||||
|
const RefIdColumn *mKey;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
MiscRefIdAdapter (const InventoryColumns& columns, const RefIdColumn *key);
|
||||||
|
|
||||||
|
virtual QVariant getData (const RefIdColumn *column, const RefIdData& data, int index)
|
||||||
|
const;
|
||||||
|
|
||||||
|
virtual void setData (const RefIdColumn *column, RefIdData& data, int index,
|
||||||
|
const QVariant& value) const;
|
||||||
|
///< If the data type does not match an exception is thrown.
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -241,6 +241,9 @@ CSMWorld::RefIdCollection::RefIdCollection()
|
||||||
lightColumns.mFlags.insert (std::make_pair (&mColumns.back(), sLightFlagTable[i].mFlag));
|
lightColumns.mFlags.insert (std::make_pair (&mColumns.back(), sLightFlagTable[i].mFlag));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mColumns.push_back (RefIdColumn ("Key", ColumnBase::Display_Boolean));
|
||||||
|
const RefIdColumn *key = &mColumns.back();
|
||||||
|
|
||||||
mAdapters.insert (std::make_pair (UniversalId::Type_Activator,
|
mAdapters.insert (std::make_pair (UniversalId::Type_Activator,
|
||||||
new NameRefIdAdapter<ESM::Activator> (UniversalId::Type_Activator, nameColumns)));
|
new NameRefIdAdapter<ESM::Activator> (UniversalId::Type_Activator, nameColumns)));
|
||||||
mAdapters.insert (std::make_pair (UniversalId::Type_Potion,
|
mAdapters.insert (std::make_pair (UniversalId::Type_Potion,
|
||||||
|
@ -271,8 +274,7 @@ CSMWorld::RefIdCollection::RefIdCollection()
|
||||||
mAdapters.insert (std::make_pair (UniversalId::Type_Lockpick,
|
mAdapters.insert (std::make_pair (UniversalId::Type_Lockpick,
|
||||||
new ToolRefIdAdapter<ESM::Lockpick> (UniversalId::Type_Lockpick, toolsColumns)));
|
new ToolRefIdAdapter<ESM::Lockpick> (UniversalId::Type_Lockpick, toolsColumns)));
|
||||||
mAdapters.insert (std::make_pair (UniversalId::Type_Miscellaneous,
|
mAdapters.insert (std::make_pair (UniversalId::Type_Miscellaneous,
|
||||||
new InventoryRefIdAdapter<ESM::Miscellaneous> (UniversalId::Type_Miscellaneous,
|
new MiscRefIdAdapter (inventoryColumns, key)));
|
||||||
inventoryColumns)));
|
|
||||||
mAdapters.insert (std::make_pair (UniversalId::Type_Npc,
|
mAdapters.insert (std::make_pair (UniversalId::Type_Npc,
|
||||||
new ActorRefIdAdapter<ESM::NPC> (UniversalId::Type_Npc, actorsColumns)));
|
new ActorRefIdAdapter<ESM::NPC> (UniversalId::Type_Npc, actorsColumns)));
|
||||||
mAdapters.insert (std::make_pair (UniversalId::Type_Probe,
|
mAdapters.insert (std::make_pair (UniversalId::Type_Probe,
|
||||||
|
|
Loading…
Reference in a new issue