mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-29 03:26:38 +00:00 
			
		
		
		
	handle inventory in the actors
This commit is contained in:
		
							parent
							
								
									24eb034ba3
								
							
						
					
					
						commit
						9defb188ea
					
				
					 3 changed files with 17 additions and 2 deletions
				
			
		|  | @ -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…
	
		Reference in a new issue