mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2024-08-20 00:49:25 +08:00
Fixed bounds materials bug, compacted attributes
This commit is contained in:
parent
5ca6749d15
commit
8871da221b
@ -30,14 +30,19 @@ using System.Collections.Generic;
|
|||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
using TC = System.ComponentModel.TypeConverterAttribute;
|
||||||
|
using EXP = System.ComponentModel.ExpandableObjectConverter;
|
||||||
|
|
||||||
|
|
||||||
namespace CodeWalker.GameFiles
|
namespace CodeWalker.GameFiles
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BoundsDictionary : ResourceFileBase
|
[TC(typeof(EXP))] public class BoundsDictionary : ResourceFileBase
|
||||||
{
|
{
|
||||||
public override long BlockLength
|
public override long BlockLength
|
||||||
{
|
{
|
||||||
@ -97,7 +102,7 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class Bounds : ResourceFileBase, IResourceXXSystemBlock
|
[TC(typeof(EXP))] public class Bounds : ResourceFileBase, IResourceXXSystemBlock
|
||||||
{
|
{
|
||||||
public override long BlockLength
|
public override long BlockLength
|
||||||
{
|
{
|
||||||
@ -232,9 +237,9 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BoundSphere : Bounds
|
[TC(typeof(EXP))] public class BoundSphere : Bounds
|
||||||
{ }
|
{ }
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BoundCapsule : Bounds
|
[TC(typeof(EXP))] public class BoundCapsule : Bounds
|
||||||
{
|
{
|
||||||
public override long BlockLength
|
public override long BlockLength
|
||||||
{
|
{
|
||||||
@ -275,9 +280,9 @@ namespace CodeWalker.GameFiles
|
|||||||
writer.Write(this.Unknown_7Ch);
|
writer.Write(this.Unknown_7Ch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BoundBox : Bounds
|
[TC(typeof(EXP))] public class BoundBox : Bounds
|
||||||
{ }
|
{ }
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BoundGeometry : Bounds
|
[TC(typeof(EXP))] public class BoundGeometry : Bounds
|
||||||
{
|
{
|
||||||
public override long BlockLength
|
public override long BlockLength
|
||||||
{
|
{
|
||||||
@ -556,7 +561,8 @@ namespace CodeWalker.GameFiles
|
|||||||
return list.ToArray();
|
return list.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public struct BoundMaterial_s
|
|
||||||
|
[TC(typeof(EXP))] [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct BoundMaterial_s
|
||||||
{
|
{
|
||||||
public BoundsMaterialType Type { get; set; }
|
public BoundsMaterialType Type { get; set; }
|
||||||
public byte ProceduralId { get; set; }
|
public byte ProceduralId { get; set; }
|
||||||
@ -569,7 +575,8 @@ namespace CodeWalker.GameFiles
|
|||||||
return Type.ToString() + ", " + ProceduralId.ToString() + ", " + RoomId_and_PedDensity.ToString() + ", " + MaterialColorIndex.ToString() + ", " + PolyFlags.ToString() + ", " + Unk4.ToString();
|
return Type.ToString() + ", " + ProceduralId.ToString() + ", " + RoomId_and_PedDensity.ToString() + ", " + MaterialColorIndex.ToString() + ", " + PolyFlags.ToString() + ", " + Unk4.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public struct BoundMaterialColour
|
|
||||||
|
[TC(typeof(EXP))] public struct BoundMaterialColour
|
||||||
{
|
{
|
||||||
//public BoundsMaterialType Type { get; set; }
|
//public BoundsMaterialType Type { get; set; }
|
||||||
public byte R { get; set; }
|
public byte R { get; set; }
|
||||||
@ -582,7 +589,7 @@ namespace CodeWalker.GameFiles
|
|||||||
return R.ToString() + ", " + G.ToString() + ", " + B.ToString() + ", " + A.ToString();
|
return R.ToString() + ", " + G.ToString() + ", " + B.ToString() + ", " + A.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public struct BoundVertex_s
|
[TC(typeof(EXP))] public struct BoundVertex_s
|
||||||
{
|
{
|
||||||
public short X { get; set; }
|
public short X { get; set; }
|
||||||
public short Y { get; set; }
|
public short Y { get; set; }
|
||||||
@ -596,7 +603,7 @@ namespace CodeWalker.GameFiles
|
|||||||
Box = 3,
|
Box = 3,
|
||||||
Cylinder = 4,
|
Cylinder = 4,
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public abstract class BoundPolygon
|
[TC(typeof(EXP))] public abstract class BoundPolygon
|
||||||
{
|
{
|
||||||
public BoundPolygonType Type { get; set; }
|
public BoundPolygonType Type { get; set; }
|
||||||
public abstract void Read(byte[] bytes, int offset);
|
public abstract void Read(byte[] bytes, int offset);
|
||||||
@ -606,7 +613,7 @@ namespace CodeWalker.GameFiles
|
|||||||
return Type.ToString();
|
return Type.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BoundPolygonTriangle : BoundPolygon
|
[TC(typeof(EXP))] public class BoundPolygonTriangle : BoundPolygon
|
||||||
{
|
{
|
||||||
public float triArea { get; set; }
|
public float triArea { get; set; }
|
||||||
public ushort triIndex1 { get; set; }
|
public ushort triIndex1 { get; set; }
|
||||||
@ -644,7 +651,7 @@ namespace CodeWalker.GameFiles
|
|||||||
return base.ToString() + ": " + vertIndex1.ToString() + ", " + vertIndex2.ToString() + ", " + vertIndex3.ToString();
|
return base.ToString() + ": " + vertIndex1.ToString() + ", " + vertIndex2.ToString() + ", " + vertIndex3.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BoundPolygonSphere : BoundPolygon
|
[TC(typeof(EXP))] public class BoundPolygonSphere : BoundPolygon
|
||||||
{
|
{
|
||||||
public ushort sphereType { get; set; }
|
public ushort sphereType { get; set; }
|
||||||
public ushort sphereIndex { get; set; }
|
public ushort sphereIndex { get; set; }
|
||||||
@ -670,7 +677,7 @@ namespace CodeWalker.GameFiles
|
|||||||
return base.ToString() + ": " + sphereIndex.ToString() + ", " + sphereRadius.ToString();
|
return base.ToString() + ": " + sphereIndex.ToString() + ", " + sphereRadius.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BoundPolygonCapsule : BoundPolygon
|
[TC(typeof(EXP))] public class BoundPolygonCapsule : BoundPolygon
|
||||||
{
|
{
|
||||||
public ushort capsuleType { get; set; }
|
public ushort capsuleType { get; set; }
|
||||||
public ushort capsuleIndex1 { get; set; }
|
public ushort capsuleIndex1 { get; set; }
|
||||||
@ -698,7 +705,7 @@ namespace CodeWalker.GameFiles
|
|||||||
return base.ToString() + ": " + capsuleIndex1.ToString() + ", " + capsuleIndex2.ToString() + ", " + capsuleRadius.ToString();
|
return base.ToString() + ": " + capsuleIndex1.ToString() + ", " + capsuleIndex2.ToString() + ", " + capsuleRadius.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BoundPolygonBox : BoundPolygon
|
[TC(typeof(EXP))] public class BoundPolygonBox : BoundPolygon
|
||||||
{
|
{
|
||||||
public uint boxType { get; set; }
|
public uint boxType { get; set; }
|
||||||
public short boxIndex1 { get; set; }
|
public short boxIndex1 { get; set; }
|
||||||
@ -726,7 +733,7 @@ namespace CodeWalker.GameFiles
|
|||||||
return base.ToString() + ": " + boxIndex1.ToString() + ", " + boxIndex2.ToString() + ", " + boxIndex3.ToString() + ", " + boxIndex4.ToString();
|
return base.ToString() + ": " + boxIndex1.ToString() + ", " + boxIndex2.ToString() + ", " + boxIndex3.ToString() + ", " + boxIndex4.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BoundPolygonCylinder : BoundPolygon
|
[TC(typeof(EXP))] public class BoundPolygonCylinder : BoundPolygon
|
||||||
{
|
{
|
||||||
public ushort cylinderType { get; set; }
|
public ushort cylinderType { get; set; }
|
||||||
public ushort cylinderIndex1 { get; set; }
|
public ushort cylinderIndex1 { get; set; }
|
||||||
@ -754,7 +761,7 @@ namespace CodeWalker.GameFiles
|
|||||||
return base.ToString() + ": " + cylinderIndex1.ToString() + ", " + cylinderIndex2.ToString() + ", " + cylinderRadius.ToString();
|
return base.ToString() + ": " + cylinderIndex1.ToString() + ", " + cylinderIndex2.ToString() + ", " + cylinderRadius.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BoundBVH : BoundGeometry
|
[TC(typeof(EXP))] public class BoundBVH : BoundGeometry
|
||||||
{
|
{
|
||||||
public override long BlockLength
|
public override long BlockLength
|
||||||
{
|
{
|
||||||
@ -835,7 +842,7 @@ namespace CodeWalker.GameFiles
|
|||||||
return list.ToArray();
|
return list.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BoundComposite : Bounds
|
[TC(typeof(EXP))] public class BoundComposite : Bounds
|
||||||
{
|
{
|
||||||
public override long BlockLength
|
public override long BlockLength
|
||||||
{
|
{
|
||||||
@ -984,7 +991,7 @@ namespace CodeWalker.GameFiles
|
|||||||
return list.ToArray();
|
return list.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public struct BoundComposite_Unknown_B_002_s
|
[TC(typeof(EXP))] public struct BoundComposite_Unknown_B_002_s
|
||||||
{
|
{
|
||||||
public uint Unknown_0h { get; set; }
|
public uint Unknown_0h { get; set; }
|
||||||
public uint Unknown_4h { get; set; }
|
public uint Unknown_4h { get; set; }
|
||||||
@ -994,7 +1001,7 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BoundDisc : Bounds
|
[TC(typeof(EXP))] public class BoundDisc : Bounds
|
||||||
{
|
{
|
||||||
public override long BlockLength
|
public override long BlockLength
|
||||||
{
|
{
|
||||||
@ -1035,7 +1042,7 @@ namespace CodeWalker.GameFiles
|
|||||||
writer.Write(this.Unknown_7Ch);
|
writer.Write(this.Unknown_7Ch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BoundCylinder : Bounds
|
[TC(typeof(EXP))] public class BoundCylinder : Bounds
|
||||||
{
|
{
|
||||||
public override long BlockLength
|
public override long BlockLength
|
||||||
{
|
{
|
||||||
@ -1077,7 +1084,7 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BVH : ResourceSystemBlock
|
[TC(typeof(EXP))] public class BVH : ResourceSystemBlock
|
||||||
{
|
{
|
||||||
public override long BlockLength
|
public override long BlockLength
|
||||||
{
|
{
|
||||||
@ -1198,7 +1205,7 @@ namespace CodeWalker.GameFiles
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public struct BVHTreeInfo_s
|
[TC(typeof(EXP))] public struct BVHTreeInfo_s
|
||||||
{
|
{
|
||||||
public short MinX { get; set; }
|
public short MinX { get; set; }
|
||||||
public short MinY { get; set; }
|
public short MinY { get; set; }
|
||||||
@ -1214,7 +1221,7 @@ namespace CodeWalker.GameFiles
|
|||||||
return NodeIndex1.ToString() + ", " + NodeIndex2.ToString();
|
return NodeIndex1.ToString() + ", " + NodeIndex2.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public struct BVHNode_s
|
[TC(typeof(EXP))] public struct BVHNode_s
|
||||||
{
|
{
|
||||||
public short MinX { get; set; }
|
public short MinX { get; set; }
|
||||||
public short MinY { get; set; }
|
public short MinY { get; set; }
|
||||||
@ -1233,7 +1240,7 @@ namespace CodeWalker.GameFiles
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public struct BoundsMaterialType
|
[TC(typeof(EXP))] public struct BoundsMaterialType
|
||||||
{
|
{
|
||||||
public byte Index { get; set; }
|
public byte Index { get; set; }
|
||||||
|
|
||||||
@ -1251,7 +1258,7 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[TypeConverter(typeof(ExpandableObjectConverter))] public class BoundsMaterialData
|
[TC(typeof(EXP))] public class BoundsMaterialData
|
||||||
{
|
{
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string Filter { get; set; }
|
public string Filter { get; set; }
|
||||||
|
Loading…
Reference in New Issue
Block a user