diff --git a/CodeWalker.Core/GameFiles/FileTypes/YmapFile.cs b/CodeWalker.Core/GameFiles/FileTypes/YmapFile.cs index 119d886..5515f72 100644 --- a/CodeWalker.Core/GameFiles/FileTypes/YmapFile.cs +++ b/CodeWalker.Core/GameFiles/FileTypes/YmapFile.cs @@ -389,7 +389,7 @@ namespace CodeWalker.GameFiles LODLights = new YmapLODLights(); LODLights.Ymap = this; LODLights.CLODLight = soa; - LODLights.direction = MetaTypes.ConvertDataArray(Meta, (MetaName)MetaTypeName.VECTOR3, soa.direction); + LODLights.direction = MetaTypes.ConvertDataArray(Meta, MetaName.FloatXYZ, soa.direction); LODLights.falloff = MetaTypes.GetFloatArray(Meta, soa.falloff); LODLights.falloffExponent = MetaTypes.GetFloatArray(Meta, soa.falloffExponent); LODLights.timeAndStateFlags = MetaTypes.GetUintArray(Meta, soa.timeAndStateFlags); @@ -409,7 +409,7 @@ namespace CodeWalker.GameFiles DistantLODLights.Ymap = this; DistantLODLights.CDistantLODLight = soa; DistantLODLights.colours = MetaTypes.GetUintArray(Meta, soa.RGBI); - DistantLODLights.positions = MetaTypes.ConvertDataArray(Meta, (MetaName)MetaTypeName.VECTOR3, soa.position); + DistantLODLights.positions = MetaTypes.ConvertDataArray(Meta, MetaName.FloatXYZ, soa.position); DistantLODLights.CalcBB(); } } @@ -678,7 +678,7 @@ namespace CodeWalker.GameFiles if ((LODLights != null) && (LODLights.direction != null)) { var soa = new CLODLight(); - soa.direction = mb.AddItemArrayPtr((MetaName)MetaTypeName.VECTOR3, LODLights.direction); + soa.direction = mb.AddItemArrayPtr(MetaName.FloatXYZ, LODLights.direction); soa.falloff = mb.AddFloatArrayPtr(LODLights.falloff); soa.falloffExponent = mb.AddFloatArrayPtr(LODLights.falloffExponent); soa.timeAndStateFlags = mb.AddUintArrayPtr(LODLights.timeAndStateFlags); @@ -695,7 +695,7 @@ namespace CodeWalker.GameFiles if ((DistantLODLights != null) && (DistantLODLights.positions != null)) { var soa = DistantLODLights.CDistantLODLight;//to copy base vars - soa.position = mb.AddItemArrayPtr((MetaName)MetaTypeName.VECTOR3, DistantLODLights.positions); + soa.position = mb.AddItemArrayPtr(MetaName.FloatXYZ, DistantLODLights.positions); soa.RGBI = mb.AddUintArrayPtr(DistantLODLights.colours); mapdata.DistantLODLightsSOA = soa; } @@ -744,11 +744,11 @@ namespace CodeWalker.GameFiles } if ((LODLights != null) && (LODLights.direction != null)) { - mb.AddStructureInfo((MetaName)MetaTypeName.VECTOR3); + mb.AddStructureInfo(MetaName.FloatXYZ); } if ((DistantLODLights != null) && (DistantLODLights.positions != null)) { - mb.AddStructureInfo((MetaName)MetaTypeName.VECTOR3); + mb.AddStructureInfo(MetaName.FloatXYZ); } mb.AddEnumInfo(MetaName.rage__eLodType); //LODTYPES_ diff --git a/CodeWalker.Core/GameFiles/MetaTypes/MetaNames.cs b/CodeWalker.Core/GameFiles/MetaTypes/MetaNames.cs index 0008f5f..b8fc290 100644 --- a/CodeWalker.Core/GameFiles/MetaTypes/MetaNames.cs +++ b/CodeWalker.Core/GameFiles/MetaTypes/MetaNames.cs @@ -3462,6 +3462,10 @@ namespace CodeWalker.GameFiles + FloatXYZ = 3805007828, + + + diff --git a/CodeWalker.Core/GameFiles/MetaTypes/MetaTypes.cs b/CodeWalker.Core/GameFiles/MetaTypes/MetaTypes.cs index f15a8ed..6ecd047 100644 --- a/CodeWalker.Core/GameFiles/MetaTypes/MetaTypes.cs +++ b/CodeWalker.Core/GameFiles/MetaTypes/MetaTypes.cs @@ -580,7 +580,7 @@ namespace CodeWalker.GameFiles ); case MetaName.CLODLight: return new MetaStructureInfo(MetaName.CLODLight, 2325189228, 768, 136, - new MetaStructureEntryInfo_s((MetaName)MetaTypeName.ARRAYINFO, 0, MetaStructureEntryDataType.Structure, 0, 0, (MetaName)MetaTypeName.VECTOR3), + new MetaStructureEntryInfo_s((MetaName)MetaTypeName.ARRAYINFO, 0, MetaStructureEntryDataType.Structure, 0, 0, MetaName.FloatXYZ), new MetaStructureEntryInfo_s(MetaName.direction, 8, MetaStructureEntryDataType.Array, 0, 0, 0), new MetaStructureEntryInfo_s((MetaName)MetaTypeName.ARRAYINFO, 0, MetaStructureEntryDataType.Float, 0, 0, 0), new MetaStructureEntryInfo_s(MetaName.falloff, 24, MetaStructureEntryDataType.Array, 0, 2, 0), @@ -599,7 +599,7 @@ namespace CodeWalker.GameFiles ); case MetaName.CDistantLODLight: return new MetaStructureInfo(MetaName.CDistantLODLight, 2820908419, 768, 48, - new MetaStructureEntryInfo_s((MetaName)MetaTypeName.ARRAYINFO, 0, MetaStructureEntryDataType.Structure, 0, 0, (MetaName)MetaTypeName.VECTOR3), + new MetaStructureEntryInfo_s((MetaName)MetaTypeName.ARRAYINFO, 0, MetaStructureEntryDataType.Structure, 0, 0, MetaName.FloatXYZ), new MetaStructureEntryInfo_s(MetaName.position, 8, MetaStructureEntryDataType.Array, 0, 0, 0), new MetaStructureEntryInfo_s((MetaName)MetaTypeName.ARRAYINFO, 0, MetaStructureEntryDataType.UnsignedInt, 0, 0, 0), new MetaStructureEntryInfo_s(MetaName.RGBI, 24, MetaStructureEntryDataType.Array, 0, 2, 0), @@ -1001,8 +1001,8 @@ namespace CodeWalker.GameFiles new MetaStructureEntryInfo_s(MetaName.softness, 168, MetaStructureEntryDataType.Float, 0, 0, 0), new MetaStructureEntryInfo_s(MetaName.scaleBySunIntensity, 172, MetaStructureEntryDataType.Boolean, 0, 0, 0) ); - case (MetaName)MetaTypeName.VECTOR3: - return new MetaStructureInfo((MetaName)MetaTypeName.VECTOR3, 2751397072, 512, 12, + case MetaName.FloatXYZ: + return new MetaStructureInfo(MetaName.FloatXYZ, 2751397072, 512, 12, new MetaStructureEntryInfo_s(MetaName.x, 0, MetaStructureEntryDataType.Float, 0, 0, 0), new MetaStructureEntryInfo_s(MetaName.y, 4, MetaStructureEntryDataType.Float, 0, 0, 0), new MetaStructureEntryInfo_s(MetaName.z, 8, MetaStructureEntryDataType.Float, 0, 0, 0) @@ -2067,14 +2067,6 @@ namespace CodeWalker.GameFiles public enum MetaTypeName : uint { //SectionUNKNOWN1 = 1701774085, //cloth CollisionData (child of rage__phVerletClothCustomBounds) - ////SectionUNKNOWN2 = 1185771007, //CCompositeEntityType - //SectionUNKNOWN3 = 1980345114, - ////SectionUNKNOWN4 = 2085051229, - //SectionUNKNOWN5 = 2741784237, //OccludeModel - ////SectionUNKNOWN6 = 3985044770, - //SectionUNKNOWN7 = 975711773, //BoxOccluder - //SectionUNKNOWN8 = 3430328684,//0xCC76A96C, - VECTOR3 = 3805007828,//0xe2cbcfd4, //this hash isn't correct, but is a placeholder used in various places, incl CDistantLODLight - TODO: figure out the actual name for this and add it to MetaNames!!! VECTOR4 = 0x33, //(was SectionUNKNOWN12) HASH = 0x4a, diff --git a/CodeWalker.Core/GameFiles/MetaTypes/PsoTypes.cs b/CodeWalker.Core/GameFiles/MetaTypes/PsoTypes.cs index 85ae035..773f9e5 100644 --- a/CodeWalker.Core/GameFiles/MetaTypes/PsoTypes.cs +++ b/CodeWalker.Core/GameFiles/MetaTypes/PsoTypes.cs @@ -14101,7 +14101,7 @@ namespace CodeWalker.GameFiles ); case MetaName.CLODLight: return new PsoStructureInfo(MetaName.CLODLight, 0, 0, 136, - new PsoStructureEntryInfo((MetaName)MetaTypeName.ARRAYINFO, PsoDataType.Structure, 0, 0, (MetaName)MetaTypeName.VECTOR3), + new PsoStructureEntryInfo((MetaName)MetaTypeName.ARRAYINFO, PsoDataType.Structure, 0, 0, MetaName.FloatXYZ), new PsoStructureEntryInfo(MetaName.direction, PsoDataType.Array, 8, 0, 0), new PsoStructureEntryInfo((MetaName)MetaTypeName.ARRAYINFO, PsoDataType.Float, 0, 0, 0), new PsoStructureEntryInfo(MetaName.falloff, PsoDataType.Array, 24, 0, (MetaName)2), @@ -14150,7 +14150,7 @@ namespace CodeWalker.GameFiles ); case MetaName.CDistantLODLight: return new PsoStructureInfo(MetaName.CDistantLODLight, 0, 0, 48, - new PsoStructureEntryInfo((MetaName)MetaTypeName.ARRAYINFO, PsoDataType.Structure, 0, 0, (MetaName)MetaTypeName.VECTOR3), + new PsoStructureEntryInfo((MetaName)MetaTypeName.ARRAYINFO, PsoDataType.Structure, 0, 0, MetaName.FloatXYZ), new PsoStructureEntryInfo(MetaName.position, PsoDataType.Array, 8, 0, 0), new PsoStructureEntryInfo((MetaName)MetaTypeName.ARRAYINFO, PsoDataType.UInt, 0, 0, 0), new PsoStructureEntryInfo(MetaName.RGBI, PsoDataType.Array, 24, 0, (MetaName)2),