mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-05-28 18:21:20 +00:00
Enum fixes
This commit is contained in:
parent
1dcfa63f3c
commit
8470923e45
@ -59,9 +59,10 @@ CPropertyStruct* CScriptLoader::LoadStructMP1(CInputStream& SCLY, CStructTemplat
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case eEnumProperty: {
|
case eEnumProperty: {
|
||||||
CEnumTemplate *pTemp = static_cast<CEnumTemplate*>(pPropTmp);
|
CEnumTemplate *pEnumTemp = static_cast<CEnumTemplate*>(pPropTmp);
|
||||||
long ID = SCLY.ReadLong();
|
u32 ID = SCLY.ReadLong();
|
||||||
long index = pTemp->EnumeratorIndex(ID);
|
u32 index = pEnumTemp->EnumeratorIndex(ID);
|
||||||
|
if (index == -1) Log::FileError(SCLY.GetSourceString(), SCLY.Tell() - 4, "Enum property \"" + pEnumTemp->Name() + "\" in struct \"" + pTemp->Name() + "\" has invalid enumerator value: " + StringUtil::ToHexString(ID, true, true, 8));
|
||||||
pProp = new CEnumProperty(index);
|
pProp = new CEnumProperty(index);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -274,9 +275,10 @@ void CScriptLoader::LoadStructMP2(CInputStream& SCLY, CPropertyStruct *pStruct,
|
|||||||
|
|
||||||
case eEnumProperty: {
|
case eEnumProperty: {
|
||||||
CEnumProperty *pEnumCast = static_cast<CEnumProperty*>(pProp);
|
CEnumProperty *pEnumCast = static_cast<CEnumProperty*>(pProp);
|
||||||
CEnumTemplate *pTemp = static_cast<CEnumTemplate*>(pPropTemp);
|
CEnumTemplate *pEnumTemp = static_cast<CEnumTemplate*>(pPropTemp);
|
||||||
long ID = SCLY.ReadLong();
|
u32 ID = SCLY.ReadLong();
|
||||||
long index = pTemp->EnumeratorIndex(ID);
|
u32 index = pEnumTemp->EnumeratorIndex(ID);
|
||||||
|
if (index == -1) Log::FileError(SCLY.GetSourceString(), SCLY.Tell() - 4, "Enum property \"" + pEnumTemp->Name() + "\" in struct \"" + pTemp->Name() + "\" has invalid enumerator value: " + StringUtil::ToHexString(ID, true, true, 8));
|
||||||
pEnumCast->Set(index);
|
pEnumCast->Set(index);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -154,9 +154,16 @@ EVolumeShape CScriptTemplate::VolumeShape(CScriptObject *pObj)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case eLongProperty:
|
case eLongProperty:
|
||||||
case eEnumProperty:
|
|
||||||
v = (int) static_cast<CLongProperty*>(pProp)->Get();
|
v = (int) static_cast<CLongProperty*>(pProp)->Get();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case eEnumProperty: {
|
||||||
|
CEnumProperty *pEnumCast = static_cast<CEnumProperty*>(pProp);
|
||||||
|
CEnumTemplate *pEnumTemp = static_cast<CEnumTemplate*>(pEnumCast->Template());
|
||||||
|
int index = static_cast<CEnumProperty*>(pProp)->Get();
|
||||||
|
v = pEnumTemp->EnumeratorID(index);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test and check whether any of the conditions are true
|
// Test and check whether any of the conditions are true
|
||||||
|
@ -148,7 +148,8 @@ void WPropertyEditor::CreateEditor()
|
|||||||
pComboBox->addItem(QString::fromStdString(name));
|
pComboBox->addItem(QString::fromStdString(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
pComboBox->setCurrentIndex(pEnumCast->Get());
|
u32 index = pEnumCast->Get();
|
||||||
|
if (index < pTemplate->NumEnumerators()) pComboBox->setCurrentIndex(index);
|
||||||
pComboBox->setFocusPolicy(Qt::StrongFocus);
|
pComboBox->setFocusPolicy(Qt::StrongFocus);
|
||||||
pComboBox->setContextMenuPolicy(Qt::NoContextMenu);
|
pComboBox->setContextMenuPolicy(Qt::NoContextMenu);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user