fixed itemType drama

This commit is contained in:
2025-08-09 12:15:37 +02:00
parent 63f139de8c
commit 4a08e71115
2 changed files with 15 additions and 7 deletions

View File

@@ -70,22 +70,30 @@ bool XQItemFactory::isValid()
//! es reicht nicht, einen itemType aus den itemType-templates zu
//! holen: möglicherweise muss der noch mit zusätzlichen attributen
//! ergänzt werden, (hier 'UnitType' ). Al
//!
//! \param sheetEntry
//! \return
//!
//! ergänzt werden, (hier 'UnitType' ).
XQItemType* XQItemFactory::makeItemType(const XQNodePtr& sheetEntry )
{
QString typeKey = sheetEntry->attribute("ItemType");
XQItemType* itemType = findItemTypeTemplate(typeKey);
// wir prüfen, ob im sheetEntry noch zusätzliche attribute vorhanden
// sind, die wir in dem itemType müssen
// über alle attribute
for (const auto& attr : sheetEntry->attributes())
{
// prüfen, ob der itemType des attribute schon hat
int role = itemType->hasAttribute( attr.first);
// wenn ja, überschreiben
if( role != XQItem::NoRole )
{
QVariant newValue = makeVariant(role,attr.second);
itemType = itemType->replaceAttribute( newValue, role );
}
}
return itemType;
}