mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-10 21:40:15 +00:00
handle inventory in the actors
This commit is contained in:
parent
24eb034ba3
commit
9defb188ea
@ -179,6 +179,7 @@ namespace CSMWorld
|
||||
ColumnId_Vampire = 164,
|
||||
ColumnId_BodyPartType = 165,
|
||||
ColumnId_MeshType = 166,
|
||||
ColumnId_ActorInventory = 167,
|
||||
|
||||
// Allocated to a separate value range, so we don't get a collision should we ever need
|
||||
// to extend the number of use values.
|
||||
|
@ -445,6 +445,7 @@ namespace CSMWorld
|
||||
const RefIdColumn *mFlee;
|
||||
const RefIdColumn *mFight;
|
||||
const RefIdColumn *mAlarm;
|
||||
const RefIdColumn *mInventory;
|
||||
std::map<const RefIdColumn *, unsigned int> mServices;
|
||||
|
||||
ActorColumns (const NameColumns& base) : NameColumns (base) {}
|
||||
@ -452,7 +453,7 @@ namespace CSMWorld
|
||||
|
||||
/// \brief Adapter for actor IDs (handles common AI functionality)
|
||||
template<typename RecordT>
|
||||
class ActorRefIdAdapter : public NameRefIdAdapter<RecordT>
|
||||
class ActorRefIdAdapter : public NameRefIdAdapter<RecordT>, public NestedRefIdAdapter
|
||||
{
|
||||
ActorColumns mActors;
|
||||
|
||||
@ -472,7 +473,13 @@ namespace CSMWorld
|
||||
ActorRefIdAdapter<RecordT>::ActorRefIdAdapter (UniversalId::Type type,
|
||||
const ActorColumns& columns)
|
||||
: NameRefIdAdapter<RecordT> (type, columns), mActors (columns)
|
||||
{}
|
||||
{
|
||||
std::vector<std::pair <const RefIdColumn*, HelperBase*> > assoCol;
|
||||
|
||||
assoCol.push_back(std::make_pair(mActors.mInventory, new InventoryHelper<RecordT>(type)));
|
||||
|
||||
setAssocColumns(assoCol);
|
||||
}
|
||||
|
||||
template<typename RecordT>
|
||||
QVariant ActorRefIdAdapter<RecordT>::getData (const RefIdColumn *column, const RefIdData& data,
|
||||
@ -496,6 +503,9 @@ namespace CSMWorld
|
||||
if (column==mActors.mAlarm)
|
||||
return record.get().mAiData.mAlarm;
|
||||
|
||||
if (column==mActors.mInventory)
|
||||
return true;
|
||||
|
||||
std::map<const RefIdColumn *, unsigned int>::const_iterator iter =
|
||||
mActors.mServices.find (column);
|
||||
|
||||
|
@ -99,6 +99,10 @@ CSMWorld::RefIdCollection::RefIdCollection()
|
||||
actorsColumns.mFight = &mColumns.back();
|
||||
mColumns.push_back (RefIdColumn (Columns::ColumnId_AiAlarm, ColumnBase::Display_Integer));
|
||||
actorsColumns.mAlarm = &mColumns.back();
|
||||
mColumns.push_back(RefIdColumn (Columns::ColumnId_ActorInventory, ColumnBase::Display_NestedItemList, ColumnBase::Flag_Dialogue, true, true, true));
|
||||
actorsColumns.mInventory = &mColumns.back();
|
||||
mColumns.back().addNestedColumn(Columns::ColumnId_InventoryItemId, CSMWorld::ColumnBase::Display_String);
|
||||
mColumns.back().addNestedColumn(Columns::ColumnId_ItemCount, CSMWorld::ColumnBase::Display_Integer);
|
||||
|
||||
static const struct
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user