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_Vampire = 164, | ||||||
|             ColumnId_BodyPartType = 165, |             ColumnId_BodyPartType = 165, | ||||||
|             ColumnId_MeshType = 166, |             ColumnId_MeshType = 166, | ||||||
|  |             ColumnId_ActorInventory = 167, | ||||||
| 
 | 
 | ||||||
|             // Allocated to a separate value range, so we don't get a collision should we ever need
 |             // Allocated to a separate value range, so we don't get a collision should we ever need
 | ||||||
|             // to extend the number of use values.
 |             // to extend the number of use values.
 | ||||||
|  |  | ||||||
|  | @ -445,6 +445,7 @@ namespace CSMWorld | ||||||
|         const RefIdColumn *mFlee; |         const RefIdColumn *mFlee; | ||||||
|         const RefIdColumn *mFight; |         const RefIdColumn *mFight; | ||||||
|         const RefIdColumn *mAlarm; |         const RefIdColumn *mAlarm; | ||||||
|  |         const RefIdColumn *mInventory; | ||||||
|         std::map<const RefIdColumn *, unsigned int> mServices; |         std::map<const RefIdColumn *, unsigned int> mServices; | ||||||
| 
 | 
 | ||||||
|         ActorColumns (const NameColumns& base) : NameColumns (base) {} |         ActorColumns (const NameColumns& base) : NameColumns (base) {} | ||||||
|  | @ -452,7 +453,7 @@ namespace CSMWorld | ||||||
| 
 | 
 | ||||||
|     /// \brief Adapter for actor IDs (handles common AI functionality)
 |     /// \brief Adapter for actor IDs (handles common AI functionality)
 | ||||||
|     template<typename RecordT> |     template<typename RecordT> | ||||||
|     class ActorRefIdAdapter : public NameRefIdAdapter<RecordT> |     class ActorRefIdAdapter : public NameRefIdAdapter<RecordT>, public NestedRefIdAdapter | ||||||
|     { |     { | ||||||
|             ActorColumns mActors; |             ActorColumns mActors; | ||||||
| 
 | 
 | ||||||
|  | @ -472,7 +473,13 @@ namespace CSMWorld | ||||||
|     ActorRefIdAdapter<RecordT>::ActorRefIdAdapter (UniversalId::Type type, |     ActorRefIdAdapter<RecordT>::ActorRefIdAdapter (UniversalId::Type type, | ||||||
|         const ActorColumns& columns) |         const ActorColumns& columns) | ||||||
|     : NameRefIdAdapter<RecordT> (type, columns), mActors (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> |     template<typename RecordT> | ||||||
|     QVariant ActorRefIdAdapter<RecordT>::getData (const RefIdColumn *column, const RefIdData& data, |     QVariant ActorRefIdAdapter<RecordT>::getData (const RefIdColumn *column, const RefIdData& data, | ||||||
|  | @ -496,6 +503,9 @@ namespace CSMWorld | ||||||
|         if (column==mActors.mAlarm) |         if (column==mActors.mAlarm) | ||||||
|             return record.get().mAiData.mAlarm; |             return record.get().mAiData.mAlarm; | ||||||
| 
 | 
 | ||||||
|  |         if (column==mActors.mInventory) | ||||||
|  |             return true; | ||||||
|  | 
 | ||||||
|         std::map<const RefIdColumn *, unsigned int>::const_iterator iter = |         std::map<const RefIdColumn *, unsigned int>::const_iterator iter = | ||||||
|             mActors.mServices.find (column); |             mActors.mServices.find (column); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -99,6 +99,10 @@ CSMWorld::RefIdCollection::RefIdCollection() | ||||||
|     actorsColumns.mFight = &mColumns.back(); |     actorsColumns.mFight = &mColumns.back(); | ||||||
|     mColumns.push_back (RefIdColumn (Columns::ColumnId_AiAlarm, ColumnBase::Display_Integer)); |     mColumns.push_back (RefIdColumn (Columns::ColumnId_AiAlarm, ColumnBase::Display_Integer)); | ||||||
|     actorsColumns.mAlarm = &mColumns.back(); |     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 |     static const struct | ||||||
|     { |     { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue