mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-04 01:26:39 +00:00 
			
		
		
		
	added missing column for clothing records
This commit is contained in:
		
							parent
							
								
									eba9d3e3ee
								
							
						
					
					
						commit
						28f2a7d2b4
					
				
					 5 changed files with 60 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -38,7 +38,8 @@ namespace CSMWorld
 | 
			
		|||
            Display_SpellType,
 | 
			
		||||
            Display_Script,
 | 
			
		||||
            Display_ApparatusType,
 | 
			
		||||
            Display_ArmorType
 | 
			
		||||
            Display_ArmorType,
 | 
			
		||||
            Display_ClothingType
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        std::string mTitle;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -141,4 +141,33 @@ void CSMWorld::BookRefIdAdapter::setData (const RefIdColumn *column, RefIdData&
 | 
			
		|||
        record.get().mData.mSkillID = value.toInt();
 | 
			
		||||
    else
 | 
			
		||||
        EnchantableRefIdAdapter<ESM::Book>::setData (column, data, index, value);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
CSMWorld::ClothingRefIdAdapter::ClothingRefIdAdapter (const EnchantableColumns& columns,
 | 
			
		||||
    const RefIdColumn *type)
 | 
			
		||||
: EnchantableRefIdAdapter<ESM::Clothing> (UniversalId::Type_Clothing, columns), mType (type)
 | 
			
		||||
{}
 | 
			
		||||
 | 
			
		||||
QVariant CSMWorld::ClothingRefIdAdapter::getData (const RefIdColumn *column,
 | 
			
		||||
    const RefIdData& data, int index) const
 | 
			
		||||
{
 | 
			
		||||
    const Record<ESM::Clothing>& record = static_cast<const Record<ESM::Clothing>&> (
 | 
			
		||||
        data.getRecord (RefIdData::LocalIndex (index, UniversalId::Type_Clothing)));
 | 
			
		||||
 | 
			
		||||
    if (column==mType)
 | 
			
		||||
        return record.get().mData.mType;
 | 
			
		||||
 | 
			
		||||
    return EnchantableRefIdAdapter<ESM::Clothing>::getData (column, data, index);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CSMWorld::ClothingRefIdAdapter::setData (const RefIdColumn *column, RefIdData& data, int index,
 | 
			
		||||
    const QVariant& value) const
 | 
			
		||||
{
 | 
			
		||||
    Record<ESM::Clothing>& record = static_cast<Record<ESM::Clothing>&> (
 | 
			
		||||
        data.getRecord (RefIdData::LocalIndex (index, UniversalId::Type_Clothing)));
 | 
			
		||||
 | 
			
		||||
    if (column==mType)
 | 
			
		||||
        record.get().mData.mType = value.toInt();
 | 
			
		||||
    else
 | 
			
		||||
        EnchantableRefIdAdapter<ESM::Clothing>::setData (column, data, index, value);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -580,6 +580,22 @@ namespace CSMWorld
 | 
			
		|||
                const QVariant& value) const;
 | 
			
		||||
            ///< If the data type does not match an exception is thrown.
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    class ClothingRefIdAdapter : public EnchantableRefIdAdapter<ESM::Clothing>
 | 
			
		||||
    {
 | 
			
		||||
            const RefIdColumn *mType;
 | 
			
		||||
 | 
			
		||||
        public:
 | 
			
		||||
 | 
			
		||||
            ClothingRefIdAdapter (const EnchantableColumns& columns, const RefIdColumn *type);
 | 
			
		||||
 | 
			
		||||
            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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -148,6 +148,9 @@ CSMWorld::RefIdCollection::RefIdCollection()
 | 
			
		|||
    mColumns.push_back (RefIdColumn ("Attribute", ColumnBase::Display_Attribute));
 | 
			
		||||
    const RefIdColumn *attribute = &mColumns.back();
 | 
			
		||||
 | 
			
		||||
    mColumns.push_back (RefIdColumn ("Clothing Type", ColumnBase::Display_ClothingType));
 | 
			
		||||
    const RefIdColumn *clothingType = &mColumns.back();
 | 
			
		||||
 | 
			
		||||
    mAdapters.insert (std::make_pair (UniversalId::Type_Activator,
 | 
			
		||||
        new NameRefIdAdapter<ESM::Activator> (UniversalId::Type_Activator, nameColumns)));
 | 
			
		||||
    mAdapters.insert (std::make_pair (UniversalId::Type_Potion,
 | 
			
		||||
| 
						 | 
				
			
			@ -159,7 +162,7 @@ CSMWorld::RefIdCollection::RefIdCollection()
 | 
			
		|||
    mAdapters.insert (std::make_pair (UniversalId::Type_Book,
 | 
			
		||||
        new BookRefIdAdapter (enchantableColumns, scroll, attribute)));
 | 
			
		||||
    mAdapters.insert (std::make_pair (UniversalId::Type_Clothing,
 | 
			
		||||
        new EnchantableRefIdAdapter<ESM::Clothing> (UniversalId::Type_Clothing, enchantableColumns)));
 | 
			
		||||
        new ClothingRefIdAdapter (enchantableColumns, clothingType)));
 | 
			
		||||
    mAdapters.insert (std::make_pair (UniversalId::Type_Container,
 | 
			
		||||
        new NameRefIdAdapter<ESM::Container> (UniversalId::Type_Container, nameColumns)));
 | 
			
		||||
    mAdapters.insert (std::make_pair (UniversalId::Type_Creature,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -65,6 +65,12 @@ CSVDoc::ViewManager::ViewManager (CSMDoc::DocumentManager& documentManager)
 | 
			
		|||
        "Right Gauntlet", "Shield", "Left Bracer", "Right Bracer", 0
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    static const char *sClothingTypes[] =
 | 
			
		||||
    {
 | 
			
		||||
        "Pants", "Shoes", "Shirt", "Belt", "Robe", "Right Glove", "Left Glove", "Skirt", "Ring",
 | 
			
		||||
        "Amulet", 0
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    mDelegateFactories = new CSVWorld::CommandDelegateFactoryCollection;
 | 
			
		||||
 | 
			
		||||
    mDelegateFactories->add (CSMWorld::ColumnBase::Display_GmstVarType,
 | 
			
		||||
| 
						 | 
				
			
			@ -87,6 +93,9 @@ CSVDoc::ViewManager::ViewManager (CSMDoc::DocumentManager& documentManager)
 | 
			
		|||
 | 
			
		||||
    mDelegateFactories->add (CSMWorld::ColumnBase::Display_ArmorType,
 | 
			
		||||
        new CSVWorld::EnumDelegateFactory (sArmorTypes));
 | 
			
		||||
 | 
			
		||||
    mDelegateFactories->add (CSMWorld::ColumnBase::Display_ClothingType,
 | 
			
		||||
        new CSVWorld::EnumDelegateFactory (sClothingTypes));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
CSVDoc::ViewManager::~ViewManager()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue