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