Fix for .cut XML conversion: updated PSO structure definitions

This commit is contained in:
dexy 2022-06-15 08:25:17 +10:00
parent facd1a06be
commit bf5cf1bb6f
2 changed files with 103 additions and 110 deletions

View File

@ -69,37 +69,36 @@ namespace CodeWalker.GameFiles
[TC(typeof(EXP))] public class CutsceneFile2 : CutBase // rage__cutfCutsceneFile2
{
public float fTotalDuration { get; set; } // PsoDataType.Float, 268, 0, 0),
public string cFaceDir { get; set; } // PsoDataType.String, 272, 0, (MetaName)16777216),
public uint[] iCutsceneFlags { get; set; } // PsoDataType.Array, 528, 4, (MetaName)262146),//ARRAYINFO, PsoDataType.UInt, 0, 0, 0),
public Vector3 vOffset { get; set; } // PsoDataType.Float3, 544, 0, 0),
public float fRotation { get; set; } // PsoDataType.Float, 560, 0, 0),
public string cExtraRoom { get; set; } // PsoDataType.String, 564, 0, (MetaName)1572864),
public Vector3 vExtraRoomPos { get; set; } // PsoDataType.Float3, 592, 0, 0),
public Vector3 vTriggerOffset { get; set; } // PsoDataType.Float3, 608, 0, 0),
public object[] pCutsceneObjects { get; set; } // PsoDataType.Array, 624, 0, (MetaName)9),//ARRAYINFO, PsoDataType.Structure, 0, 3, 0),
public object[] pCutsceneLoadEventList { get; set; } // PsoDataType.Array, 640, 0, (MetaName)11),//ARRAYINFO, PsoDataType.Structure, 0, 3, 0),
public object[] pCutsceneEventList { get; set; } // PsoDataType.Array, 656, 0, (MetaName)13),//ARRAYINFO, PsoDataType.Structure, 0, 3, 0),
public object[] pCutsceneEventArgsList { get; set; } // PsoDataType.Array, 672, 0, (MetaName)15),//ARRAYINFO, PsoDataType.Structure, 0, 3, 0),
public CutParAttributeList attributes { get; set; } // PsoDataType.Structure, 688, 0, MetaName.rage__parAttributeList),
public CutFAttributeList cutfAttributes { get; set; } // PsoDataType.Structure, 696, 4, 0),
public int iRangeStart { get; set; } // PsoDataType.SInt, 704, 0, 0),
public int iRangeEnd { get; set; } // PsoDataType.SInt, 708, 0, 0),
public int iAltRangeEnd { get; set; } // PsoDataType.SInt, 712, 0, 0),
public float fSectionByTimeSliceDuration { get; set; } // PsoDataType.Float, 716, 0, 0),
public float fFadeOutCutsceneDuration { get; set; } // PsoDataType.Float, 720, 0, 0),
public float fFadeInGameDuration { get; set; } // PsoDataType.Float, 724, 0, 0),
public uint fadeInColor { get; set; } // PsoDataType.UInt, 728, 1, 0),
public int iBlendOutCutsceneDuration { get; set; } // PsoDataType.SInt, 732, 0, 0),
public int iBlendOutCutsceneOffset { get; set; } // PsoDataType.SInt, 736, 0, 0),
public float fFadeOutGameDuration { get; set; } // PsoDataType.Float, 740, 0, 0),
public float fFadeInCutsceneDuration { get; set; } // PsoDataType.Float, 744, 0, 0),
public uint fadeOutColor { get; set; } // PsoDataType.UInt, 748, 1, 0),
public uint Unk_619896503 { get; set; } // PsoDataType.UInt, 728, 0, 0),
public float[] cameraCutList { get; set; } // PsoDataType.Array, 752, 0, (MetaName)31),//ARRAYINFO, PsoDataType.Float, 0, 0, 0),
public float[] sectionSplitList { get; set; } // PsoDataType.Array, 768, 0, (MetaName)MetaTypeName.FLOAT),//ARRAYINFO, PsoDataType.Float, 0, 0, 0),
public CutConcatData[] concatDataList { get; set; } // PsoDataType.Array, 784, 1, (MetaName)2621475),//ARRAYINFO, PsoDataType.Structure, 0, 0, MetaName.rage__cutfCutsceneFile2__SConcatData),
public CutHaltFrequency[] discardFrameList { get; set; } // PsoDataType.Array, 5280, 0, (MetaName)37)//ARRAYINFO, PsoDataType.Structure, 0, 0, MetaName.vHaltFrequency),
public float fTotalDuration { get; set; } //fTotalDuration, PsoDataType.Float, 268, 0, 0),
public string cFaceDir { get; set; } //cFaceDir, PsoDataType.String, 272, 0, (MetaName)16777216),
public uint[] iCutsceneFlags { get; set; } //iCutsceneFlags, PsoDataType.Array, 528, 4, (MetaName)262146),
public Vector3 vOffset { get; set; } //vOffset, PsoDataType.Float3, 544, 0, 0),
public float fRotation { get; set; } //fRotation, PsoDataType.Float, 560, 0, 0),
public Vector3 vTriggerOffset { get; set; } //vTriggerOffset, PsoDataType.Float3, 576, 0, 0),
public object[] pCutsceneObjects { get; set; } //pCutsceneObjects, PsoDataType.Array, 592, 0, (MetaName)7),
public object[] pCutsceneLoadEventList { get; set; } //pCutsceneLoadEventList, PsoDataType.Array, 608, 0, (MetaName)9),
public object[] pCutsceneEventList { get; set; } //pCutsceneEventList, PsoDataType.Array, 624, 0, (MetaName)11),
public object[] pCutsceneEventArgsList { get; set; } //pCutsceneEventArgsList, PsoDataType.Array, 640, 0, (MetaName)13),
public CutParAttributeList attributes { get; set; } //attributes, PsoDataType.Structure, 656, 0, MetaName.rage__parAttributeList),
public CutFAttributeList cutfAttributes { get; set; } //cutfAttributes, PsoDataType.Structure, 672, 4, 0),
public int iRangeStart { get; set; } //iRangeStart, PsoDataType.SInt, 680, 0, 0),
public int iRangeEnd { get; set; } //iRangeEnd, PsoDataType.SInt, 684, 0, 0),
public int iAltRangeEnd { get; set; } //iAltRangeEnd, PsoDataType.SInt, 688, 0, 0),
public float fSectionByTimeSliceDuration { get; set; } //fSectionByTimeSliceDuration, PsoDataType.Float, 692, 0, 0),
public float fFadeOutCutsceneDuration { get; set; } //fFadeOutCutsceneDuration, PsoDataType.Float, 696, 0, 0),
public float fFadeInGameDuration { get; set; } //fFadeInGameDuration, PsoDataType.Float, 700, 0, 0),
public uint fadeInColor { get; set; } //fadeInColor, PsoDataType.UInt, 704, 1, 0),
public int iBlendOutCutsceneDuration { get; set; } //iBlendOutCutsceneDuration, PsoDataType.SInt, 708, 0, 0),
public int iBlendOutCutsceneOffset { get; set; } //iBlendOutCutsceneOffset, PsoDataType.SInt, 712, 0, 0),
public float fFadeOutGameDuration { get; set; } //fFadeOutGameDuration, PsoDataType.Float, 716, 0, 0),
public float fFadeInCutsceneDuration { get; set; } //fFadeInCutsceneDuration, PsoDataType.Float, 720, 0, 0),
public uint fadeOutColor { get; set; } //fadeOutColor, PsoDataType.UInt, 724, 1, 0),
public uint DayCoCHours { get; set; } //DayCoCHours, PsoDataType.UInt, 728, 0, 0),
public float[] cameraCutList { get; set; } //cameraCutList, PsoDataType.Array, 736, 0, (MetaName)30),
public float[] sectionSplitList { get; set; } //sectionSplitList, PsoDataType.Array, 752, 0, (MetaName)32),
public CutConcatData[] concatDataList { get; set; } //concatDataList, PsoDataType.Array, 768, 1, (MetaName)2621474),
public CutHaltFrequency[] discardFrameList { get; set; } //discardFrameList, PsoDataType.Array, 3344, 0, (MetaName)36)
public Dictionary<int, CutObject> ObjectsDict { get; set; } = new Dictionary<int, CutObject>();
@ -113,8 +112,6 @@ namespace CodeWalker.GameFiles
iCutsceneFlags = Xml.GetChildRawUintArray(node, "iCutsceneFlags");
vOffset = Xml.GetChildVector3Attributes(node, "vOffset");
fRotation = Xml.GetChildFloatAttribute(node, "fRotation", "value");
cExtraRoom = Xml.GetChildInnerText(node, "cExtraRoom");
vExtraRoomPos = Xml.GetChildVector3Attributes(node, "vExtraRoomPos");
vTriggerOffset = Xml.GetChildVector3Attributes(node, "vTriggerOffset");
pCutsceneObjects = ReadObjectArray(node, "pCutsceneObjects");
pCutsceneLoadEventList = ReadObjectArray(node, "pCutsceneLoadEventList");
@ -134,7 +131,7 @@ namespace CodeWalker.GameFiles
fFadeOutGameDuration = Xml.GetChildFloatAttribute(node, "fFadeOutGameDuration", "value");
fFadeInCutsceneDuration = Xml.GetChildFloatAttribute(node, "fFadeInCutsceneDuration", "value");
fadeOutColor = Xml.GetChildUIntAttribute(node, "fadeOutColor", "value");
Unk_619896503 = Xml.GetChildUIntAttribute(node, "hash_24F2DEB7", "value");
DayCoCHours = Xml.GetChildUIntAttribute(node, "DayCoCHours", "value");
cameraCutList = Xml.GetChildRawFloatArray(node, "cameraCutList");
sectionSplitList = Xml.GetChildRawFloatArray(node, "sectionSplitList");
concatDataList = XmlMeta.ReadItemArrayNullable<CutConcatData>(node, "concatDataList");
@ -608,28 +605,27 @@ namespace CodeWalker.GameFiles
}
[TC(typeof(EXP))] public class CutLightObject : CutNamedObject // rage__cutfLightObject
{
public Vector3 vDirection { get; set; } // PsoDataType.Float3, 112, 0, 0),
public Vector3 vColour { get; set; } // PsoDataType.Float3, 128, 0, 0),
public Vector3 vPosition { get; set; } // PsoDataType.Float3, 144, 0, 0),
public float fIntensity { get; set; } // PsoDataType.Float, 160, 0, 0),
public float fFallOff { get; set; } // PsoDataType.Float, 164, 0, 0),
public float fConeAngle { get; set; } // PsoDataType.Float, 168, 0, 0),
public float fVolumeIntensity { get; set; } // PsoDataType.Float, 172, 0, 0),
public float fVolumeSizeScale { get; set; } // PsoDataType.Float, 176, 0, 0),
public float fCoronaSize { get; set; } // PsoDataType.Float, 180, 0, 0),
public float fCoronaIntensity { get; set; } // PsoDataType.Float, 184, 0, 0),
public float fCoronaZBias { get; set; } // PsoDataType.Float, 188, 0, 0),
public float fInnerConeAngle { get; set; } // PsoDataType.Float, 192, 0, 0),
public float fExponentialFallOff { get; set; } // PsoDataType.Float, 196, 0, 0),
public int iLightType { get; set; } // PsoDataType.SInt, 200, 0, 0),
public int iLightProperty { get; set; } // PsoDataType.SInt, 204, 0, 0),
public int TextureDictID { get; set; } // PsoDataType.SInt, 208, 0, 0),
public int TextureKey { get; set; } // PsoDataType.SInt, 212, 0, 0),
public int Unk_34975788 { get; set; } // PsoDataType.SInt, 216, 0, 0),
public uint uLightFlags { get; set; } // PsoDataType.UInt, 220, 0, 0),
public uint uHourFlags { get; set; } // PsoDataType.UInt, 224, 0, 0),
public ushort Unk_1437992521 { get; set; } // PsoDataType.UShort, 228, 0, 0),
public bool bStatic { get; set; } // PsoDataType.Bool, 230, 0, 0)
public Vector3 vDirection { get; set; } // PsoDataType.Float3, 64, 0, 0),
public Vector3 vColour { get; set; } // PsoDataType.Float3, 80, 0, 0),
public Vector3 vPosition { get; set; } // PsoDataType.Float3, 96, 0, 0),
public float fIntensity { get; set; } // PsoDataType.Float, 112, 0, 0),
public float fFallOff { get; set; } // PsoDataType.Float, 116, 0, 0),
public float fConeAngle { get; set; } // PsoDataType.Float, 120, 0, 0),
public float fVolumeIntensity { get; set; } // PsoDataType.Float, 124, 0, 0),
public float fVolumeSizeScale { get; set; } // PsoDataType.Float, 128, 0, 0),
public float fCoronaSize { get; set; } // PsoDataType.Float, 132, 0, 0),
public float fCoronaIntensity { get; set; } // PsoDataType.Float, 136, 0, 0),
public float fCoronaZBias { get; set; } // PsoDataType.Float, 140, 0, 0),
public float fInnerConeAngle { get; set; } // PsoDataType.Float, 144, 0, 0),
public float fExponentialFallOff { get; set; } // PsoDataType.Float, 148, 0, 0),
public float fShadowBlur { get; set; } // PsoDataType.Float, 152, 0, 0),
public int iLightType { get; set; } // PsoDataType.SInt, 156, 0, 0),
public int iLightProperty { get; set; } // PsoDataType.SInt, 160, 0, 0),
public int TextureDictID { get; set; } // PsoDataType.SInt, 164, 0, 0),
public int TextureKey { get; set; } // PsoDataType.SInt, 168, 0, 0),
public uint uLightFlags { get; set; } // PsoDataType.UInt, 176, 0, 0),
public uint uHourFlags { get; set; } // PsoDataType.UInt, 180, 0, 0),
public bool bStatic { get; set; } // PsoDataType.Bool, 186, 0, 0)
public override void ReadXml(XmlNode node)
{
@ -647,14 +643,13 @@ namespace CodeWalker.GameFiles
fCoronaZBias = Xml.GetChildFloatAttribute(node, "fCoronaZBias", "value");
fInnerConeAngle = Xml.GetChildFloatAttribute(node, "fInnerConeAngle", "value");
fExponentialFallOff = Xml.GetChildFloatAttribute(node, "fExponentialFallOff", "value");
fShadowBlur = Xml.GetChildFloatAttribute(node, "fShadowBlur", "value");
iLightType = Xml.GetChildIntAttribute(node, "iLightType", "value");
iLightProperty = Xml.GetChildIntAttribute(node, "iLightProperty", "value");
TextureDictID = Xml.GetChildIntAttribute(node, "TextureDictID", "value");
TextureKey = Xml.GetChildIntAttribute(node, "TextureKey", "value");
Unk_34975788 = Xml.GetChildIntAttribute(node, "hash_0215B02C", "value");
uLightFlags = Xml.GetChildUIntAttribute(node, "uLightFlags", "value");
uHourFlags = Xml.GetChildUIntAttribute(node, "uHourFlags", "value");
Unk_1437992521 = (ushort)Xml.GetChildUIntAttribute(node, "hash_55B60649", "value");
bStatic = Xml.GetChildBoolAttribute(node, "bStatic", "value");
}
}

View File

@ -13323,46 +13323,45 @@ namespace CodeWalker.GameFiles
new PsoStructureEntryInfo(MetaName.components, PsoDataType.Array, 72, 0, (MetaName)9)
);
case MetaName.rage__cutfCutsceneFile2:
return new PsoStructureInfo(MetaName.rage__cutfCutsceneFile2, 0, 0, 5296,
return new PsoStructureInfo(MetaName.rage__cutfCutsceneFile2, 0, 0, 3360,
new PsoStructureEntryInfo(MetaName.fTotalDuration, PsoDataType.Float, 268, 0, 0),
new PsoStructureEntryInfo(MetaName.cFaceDir, PsoDataType.String, 272, 0, (MetaName)16777216),
new PsoStructureEntryInfo((MetaName)MetaTypeName.ARRAYINFO, PsoDataType.UInt, 0, 0, 0),
new PsoStructureEntryInfo(MetaName.iCutsceneFlags, PsoDataType.Array, 528, 4, (MetaName)262146),
new PsoStructureEntryInfo(MetaName.vOffset, PsoDataType.Float3, 544, 0, 0),
new PsoStructureEntryInfo(MetaName.fRotation, PsoDataType.Float, 560, 0, 0),
new PsoStructureEntryInfo(MetaName.cExtraRoom, PsoDataType.String, 564, 0, (MetaName)1572864),
new PsoStructureEntryInfo(MetaName.vExtraRoomPos, PsoDataType.Float3, 592, 0, 0),
new PsoStructureEntryInfo(MetaName.vTriggerOffset, PsoDataType.Float3, 608, 0, 0),
new PsoStructureEntryInfo(MetaName.vTriggerOffset, PsoDataType.Float3, 576, 0, 0),
new PsoStructureEntryInfo((MetaName)MetaTypeName.ARRAYINFO, PsoDataType.Structure, 0, 3, 0),
new PsoStructureEntryInfo(MetaName.pCutsceneObjects, PsoDataType.Array, 624, 0, (MetaName)9),
new PsoStructureEntryInfo(MetaName.pCutsceneObjects, PsoDataType.Array, 592, 0, (MetaName)7),
new PsoStructureEntryInfo((MetaName)MetaTypeName.ARRAYINFO, PsoDataType.Structure, 0, 3, 0),
new PsoStructureEntryInfo(MetaName.pCutsceneLoadEventList, PsoDataType.Array, 640, 0, (MetaName)11),
new PsoStructureEntryInfo(MetaName.pCutsceneLoadEventList, PsoDataType.Array, 608, 0, (MetaName)9),
new PsoStructureEntryInfo((MetaName)MetaTypeName.ARRAYINFO, PsoDataType.Structure, 0, 3, 0),
new PsoStructureEntryInfo(MetaName.pCutsceneEventList, PsoDataType.Array, 656, 0, (MetaName)13),
new PsoStructureEntryInfo(MetaName.pCutsceneEventList, PsoDataType.Array, 624, 0, (MetaName)11),
new PsoStructureEntryInfo((MetaName)MetaTypeName.ARRAYINFO, PsoDataType.Structure, 0, 3, 0),
new PsoStructureEntryInfo(MetaName.pCutsceneEventArgsList, PsoDataType.Array, 672, 0, (MetaName)15),
new PsoStructureEntryInfo(MetaName.attributes, PsoDataType.Structure, 688, 0, MetaName.rage__parAttributeList),
new PsoStructureEntryInfo(MetaName.cutfAttributes, PsoDataType.Structure, 696, 4, 0),
new PsoStructureEntryInfo(MetaName.iRangeStart, PsoDataType.SInt, 704, 0, 0),
new PsoStructureEntryInfo(MetaName.iRangeEnd, PsoDataType.SInt, 708, 0, 0),
new PsoStructureEntryInfo(MetaName.iAltRangeEnd, PsoDataType.SInt, 712, 0, 0),
new PsoStructureEntryInfo(MetaName.fSectionByTimeSliceDuration, PsoDataType.Float, 716, 0, 0),
new PsoStructureEntryInfo(MetaName.fFadeOutCutsceneDuration, PsoDataType.Float, 720, 0, 0),
new PsoStructureEntryInfo(MetaName.fFadeInGameDuration, PsoDataType.Float, 724, 0, 0),
new PsoStructureEntryInfo(MetaName.fadeInColor, PsoDataType.UInt, 728, 1, 0),
new PsoStructureEntryInfo(MetaName.iBlendOutCutsceneDuration, PsoDataType.SInt, 732, 0, 0),
new PsoStructureEntryInfo(MetaName.iBlendOutCutsceneOffset, PsoDataType.SInt, 736, 0, 0),
new PsoStructureEntryInfo(MetaName.fFadeOutGameDuration, PsoDataType.Float, 740, 0, 0),
new PsoStructureEntryInfo(MetaName.fFadeInCutsceneDuration, PsoDataType.Float, 744, 0, 0),
new PsoStructureEntryInfo(MetaName.fadeOutColor, PsoDataType.UInt, 748, 1, 0),
new PsoStructureEntryInfo(MetaName.pCutsceneEventArgsList, PsoDataType.Array, 640, 0, (MetaName)13),
new PsoStructureEntryInfo(MetaName.attributes, PsoDataType.Structure, 656, 0, MetaName.rage__parAttributeList),
new PsoStructureEntryInfo(MetaName.cutfAttributes, PsoDataType.Structure, 672, 4, 0),
new PsoStructureEntryInfo(MetaName.iRangeStart, PsoDataType.SInt, 680, 0, 0),
new PsoStructureEntryInfo(MetaName.iRangeEnd, PsoDataType.SInt, 684, 0, 0),
new PsoStructureEntryInfo(MetaName.iAltRangeEnd, PsoDataType.SInt, 688, 0, 0),
new PsoStructureEntryInfo(MetaName.fSectionByTimeSliceDuration, PsoDataType.Float, 692, 0, 0),
new PsoStructureEntryInfo(MetaName.fFadeOutCutsceneDuration, PsoDataType.Float, 696, 0, 0),
new PsoStructureEntryInfo(MetaName.fFadeInGameDuration, PsoDataType.Float, 700, 0, 0),
new PsoStructureEntryInfo(MetaName.fadeInColor, PsoDataType.UInt, 704, 1, 0),
new PsoStructureEntryInfo(MetaName.iBlendOutCutsceneDuration, PsoDataType.SInt, 708, 0, 0),
new PsoStructureEntryInfo(MetaName.iBlendOutCutsceneOffset, PsoDataType.SInt, 712, 0, 0),
new PsoStructureEntryInfo(MetaName.fFadeOutGameDuration, PsoDataType.Float, 716, 0, 0),
new PsoStructureEntryInfo(MetaName.fFadeInCutsceneDuration, PsoDataType.Float, 720, 0, 0),
new PsoStructureEntryInfo(MetaName.fadeOutColor, PsoDataType.UInt, 724, 1, 0),
new PsoStructureEntryInfo(MetaName.DayCoCHours, PsoDataType.UInt, 728, 0, 0),
new PsoStructureEntryInfo((MetaName)MetaTypeName.ARRAYINFO, PsoDataType.Float, 0, 0, 0),
new PsoStructureEntryInfo(MetaName.cameraCutList, PsoDataType.Array, 752, 0, (MetaName)31),
new PsoStructureEntryInfo(MetaName.cameraCutList, PsoDataType.Array, 736, 0, (MetaName)30),
new PsoStructureEntryInfo((MetaName)MetaTypeName.ARRAYINFO, PsoDataType.Float, 0, 0, 0),
new PsoStructureEntryInfo(MetaName.sectionSplitList, PsoDataType.Array, 768, 0, (MetaName)MetaTypeName.FLOAT),
new PsoStructureEntryInfo(MetaName.sectionSplitList, PsoDataType.Array, 752, 0, (MetaName)32),
new PsoStructureEntryInfo((MetaName)MetaTypeName.ARRAYINFO, PsoDataType.Structure, 0, 0, MetaName.rage__cutfCutsceneFile2__SConcatData),
new PsoStructureEntryInfo(MetaName.concatDataList, PsoDataType.Array, 784, 1, (MetaName)2621475),
new PsoStructureEntryInfo(MetaName.concatDataList, PsoDataType.Array, 768, 1, (MetaName)2621474),
new PsoStructureEntryInfo((MetaName)MetaTypeName.ARRAYINFO, PsoDataType.Structure, 0, 0, MetaName.vHaltFrequency),
new PsoStructureEntryInfo(MetaName.discardFrameList, PsoDataType.Array, 5280, 0, (MetaName)37)
new PsoStructureEntryInfo(MetaName.discardFrameList, PsoDataType.Array, 3344, 0, (MetaName)36)
);
case MetaName.rage__parAttributeList:
return new PsoStructureInfo(MetaName.rage__parAttributeList, 0, 0, 12,
@ -13482,33 +13481,32 @@ namespace CodeWalker.GameFiles
new PsoStructureEntryInfo(MetaName.cName, PsoDataType.String, 40, 7, 0)
);
case MetaName.rage__cutfLightObject:
return new PsoStructureInfo(MetaName.rage__cutfLightObject, 0, 0, 240,
return new PsoStructureInfo(MetaName.rage__cutfLightObject, 0, 0, 192,
new PsoStructureEntryInfo(MetaName.iObjectId, PsoDataType.SInt, 8, 0, 0),
new PsoStructureEntryInfo(MetaName.attributeList, PsoDataType.Structure, 16, 0, MetaName.rage__parAttributeList),
new PsoStructureEntryInfo(MetaName.cutfAttributes, PsoDataType.Structure, 24, 4, 0),
new PsoStructureEntryInfo(MetaName.cName, PsoDataType.String, 32, 0, (MetaName)4194304),
new PsoStructureEntryInfo(MetaName.vDirection, PsoDataType.Float3, 112, 0, 0),
new PsoStructureEntryInfo(MetaName.vColour, PsoDataType.Float3, 128, 0, 0),
new PsoStructureEntryInfo(MetaName.vPosition, PsoDataType.Float3, 144, 0, 0),
new PsoStructureEntryInfo(MetaName.fIntensity, PsoDataType.Float, 160, 0, 0),
new PsoStructureEntryInfo(MetaName.fFallOff, PsoDataType.Float, 164, 0, 0),
new PsoStructureEntryInfo(MetaName.fConeAngle, PsoDataType.Float, 168, 0, 0),
new PsoStructureEntryInfo(MetaName.fVolumeIntensity, PsoDataType.Float, 172, 0, 0),
new PsoStructureEntryInfo(MetaName.fVolumeSizeScale, PsoDataType.Float, 176, 0, 0),
new PsoStructureEntryInfo(MetaName.fCoronaSize, PsoDataType.Float, 180, 0, 0),
new PsoStructureEntryInfo(MetaName.fCoronaIntensity, PsoDataType.Float, 184, 0, 0),
new PsoStructureEntryInfo(MetaName.fCoronaZBias, PsoDataType.Float, 188, 0, 0),
new PsoStructureEntryInfo(MetaName.fInnerConeAngle, PsoDataType.Float, 192, 0, 0),
new PsoStructureEntryInfo(MetaName.fExponentialFallOff, PsoDataType.Float, 196, 0, 0),
new PsoStructureEntryInfo(MetaName.iLightType, PsoDataType.SInt, 200, 0, 0),
new PsoStructureEntryInfo(MetaName.iLightProperty, PsoDataType.SInt, 204, 0, 0),
new PsoStructureEntryInfo(MetaName.TextureDictID, PsoDataType.SInt, 208, 0, 0),
new PsoStructureEntryInfo(MetaName.TextureKey, PsoDataType.SInt, 212, 0, 0),
new PsoStructureEntryInfo((MetaName)34975788, PsoDataType.SInt, 216, 0, 0),
new PsoStructureEntryInfo(MetaName.uLightFlags, PsoDataType.UInt, 220, 0, 0),
new PsoStructureEntryInfo(MetaName.uHourFlags, PsoDataType.UInt, 224, 0, 0),
new PsoStructureEntryInfo((MetaName)1437992521, PsoDataType.UShort, 228, 0, 0),
new PsoStructureEntryInfo(MetaName.bStatic, PsoDataType.Bool, 230, 0, 0)
new PsoStructureEntryInfo(MetaName.attributeList, PsoDataType.Structure, 20, 0, MetaName.rage__parAttributeList),
new PsoStructureEntryInfo(MetaName.cutfAttributes, PsoDataType.Structure, 32, 4, 0),
new PsoStructureEntryInfo(MetaName.cName, PsoDataType.String, 40, 7, 0),
new PsoStructureEntryInfo(MetaName.vDirection, PsoDataType.Float3, 64, 0, 0),
new PsoStructureEntryInfo(MetaName.vColour, PsoDataType.Float3, 80, 0, 0),
new PsoStructureEntryInfo(MetaName.vPosition, PsoDataType.Float3, 96, 0, 0),
new PsoStructureEntryInfo(MetaName.fIntensity, PsoDataType.Float, 112, 0, 0),
new PsoStructureEntryInfo(MetaName.fFallOff, PsoDataType.Float, 116, 0, 0),
new PsoStructureEntryInfo(MetaName.fConeAngle, PsoDataType.Float, 120, 0, 0),
new PsoStructureEntryInfo(MetaName.fVolumeIntensity, PsoDataType.Float, 124, 0, 0),
new PsoStructureEntryInfo(MetaName.fVolumeSizeScale, PsoDataType.Float, 128, 0, 0),
new PsoStructureEntryInfo(MetaName.fCoronaSize, PsoDataType.Float, 132, 0, 0),
new PsoStructureEntryInfo(MetaName.fCoronaIntensity, PsoDataType.Float, 136, 0, 0),
new PsoStructureEntryInfo(MetaName.fCoronaZBias, PsoDataType.Float, 140, 0, 0),
new PsoStructureEntryInfo(MetaName.fInnerConeAngle, PsoDataType.Float, 144, 0, 0),
new PsoStructureEntryInfo(MetaName.fExponentialFallOff, PsoDataType.Float, 148, 0, 0),
new PsoStructureEntryInfo(MetaName.fShadowBlur, PsoDataType.Float, 152, 0, 0),
new PsoStructureEntryInfo(MetaName.iLightType, PsoDataType.SInt, 156, 0, 0),
new PsoStructureEntryInfo(MetaName.iLightProperty, PsoDataType.SInt, 160, 0, 0),
new PsoStructureEntryInfo(MetaName.TextureDictID, PsoDataType.SInt, 164, 0, 0),
new PsoStructureEntryInfo(MetaName.TextureKey, PsoDataType.SInt, 168, 0, 0),
new PsoStructureEntryInfo(MetaName.uLightFlags, PsoDataType.UInt, 176, 0, 0),
new PsoStructureEntryInfo(MetaName.uHourFlags, PsoDataType.UInt, 180, 0, 0),
new PsoStructureEntryInfo(MetaName.bStatic, PsoDataType.Bool, 186, 0, 0)
);
case MetaName.rage__cutfAnimatedLightObject:
return new PsoStructureInfo(MetaName.rage__cutfAnimatedLightObject, 0, 0, 208,