Make enum properties track the enumerator ID internally instead of the index + CUniqueID bugfix

This commit is contained in:
parax0
2016-02-10 18:48:34 -07:00
parent 739e3c51bf
commit 7bd97f0fce
9 changed files with 48 additions and 24 deletions

View File

@@ -153,10 +153,7 @@ s32 CScriptTemplate::CheckVolumeConditions(CScriptObject *pObj, bool LogErrors)
break;
case eEnumProperty: {
TEnumProperty *pEnumCast = static_cast<TEnumProperty*>(pProp);
CEnumTemplate *pEnumTemp = static_cast<CEnumTemplate*>(pEnumCast->Template());
int index = static_cast<TEnumProperty*>(pProp)->Get();
v = pEnumTemp->EnumeratorID(index);
v = (int) static_cast<TEnumProperty*>(pProp)->Get();
break;
}
}

View File

@@ -416,8 +416,7 @@ public:
virtual IProperty* InstantiateProperty(CPropertyStruct *pParent)
{
TEnumProperty *pEnum = new TEnumProperty(this, pParent);
u32 Index = EnumeratorIndex(GetDefaultValue());
pEnum->Set(Index);
pEnum->Set(GetDefaultValue());
return pEnum;
}