Skip to content

Instantly share code, notes, and snippets.

@camden-smallwood-zz
Created November 8, 2016 06:14
Show Gist options
  • Select an option

  • Save camden-smallwood-zz/73a3a44a43b81acb99e85a7baa6094ee to your computer and use it in GitHub Desktop.

Select an option

Save camden-smallwood-zz/73a3a44a43b81acb99e85a7baa6094ee to your computer and use it in GitHub Desktop.
using System.Collections.Generic;
using TagTool.Common;
using TagTool.Serialization;
using TagTool.TagGroups;
namespace TagTool.Definitions.Halo3ODST.TagStructures
{
[TagStructure(Class = "sbsp", Size = 0x394)]
public class ScenarioStructureBsp
{
public int BspChecksum;
public int Unknown;
public uint Unknown2;
public uint Unknown3;
public List<StructureSeam> StructureSeams;
public uint Unknown4;
public uint Unknown5;
public uint Unknown6;
public List<CollisionMaterial> CollisionMaterials;
public List<UnknownBlock> Unknown7;
public float WorldBoundsXMin;
public float WorldBoundsXMax;
public float WorldBoundsYMin;
public float WorldBoundsYMax;
public float WorldBoundsZMin;
public float WorldBoundsZMax;
public uint Unknown8;
public uint Unknown9;
public uint Unknown10;
public uint Unknown11;
public uint Unknown12;
public uint Unknown13;
public List<ClusterPortal> ClusterPortals;
public List<UnknownBlock2> Unknown14;
public List<FogBlock> Fog;
public uint Unknown15;
public uint Unknown16;
public uint Unknown17;
public uint Unknown18;
public uint Unknown19;
public uint Unknown20;
public List<DetailObject> DetailObjects;
public List<Cluster> Clusters;
public List<Material> Materials;
public List<SkyOwnerClusterBlock> SkyOwnerCluster;
public uint Unknown21;
public uint Unknown22;
public uint Unknown23;
public uint Unknown24;
public uint Unknown25;
public uint Unknown26;
public uint Unknown27;
public uint Unknown28;
public uint Unknown29;
public uint Unknown30;
public uint Unknown31;
public uint Unknown32;
public List<BackgroundSoundEnvironmentPaletteBlock> BackgroundSoundEnvironmentPalette;
public uint Unknown33;
public uint Unknown34;
public uint Unknown35;
public uint Unknown36;
public uint Unknown37;
public uint Unknown38;
public uint Unknown39;
public uint Unknown40;
public uint Unknown41;
public uint Unknown42;
public uint Unknown43;
public List<Marker> Markers;
public List<Light> Lights;
public List<UnknownBlock3> Unknown44;
public List<RuntimeDecal> RuntimeDecals;
public List<EnvironmentObjectPaletteBlock> EnvironmentObjectPalette;
public List<EnvironmentObject> EnvironmentObjects;
public uint Unknown45;
public uint Unknown46;
public uint Unknown47;
public uint Unknown48;
public uint Unknown49;
public uint Unknown50;
public uint Unknown51;
public uint Unknown52;
public uint Unknown53;
public uint Unknown54;
public List<InstancedGeometryInstance> InstancedGeometryInstances;
public List<Decorator> Decorators;
public int Unknown55;
public List<Section> Sections;
public List<CompressionInfoBlock> CompressionInfo;
public List<UnknownNodeyBlock> UnknownNodey;
public List<UnknownBlock4> Unknown56;
public uint Unknown57;
public uint Unknown58;
public uint Unknown59;
public List<UnknownSection> UnknownSections;
public List<NodeMap> NodeMaps;
public List<UnknownBlock5> Unknown60;
public uint Unknown61;
public uint Unknown62;
public uint Unknown63;
public List<UnknownYoBlock> UnknownYo;
public ushort ZoneAssetSalt1;
public ushort ZoneAssetIndex1;
public int UselessPadding;
public List<UnknownSoundClustersABlock> UnknownSoundClustersA;
public List<UnknownSoundClustersBBlock> UnknownSoundClustersB;
public List<UnknownSoundClustersCBlock> UnknownSoundClustersC;
public List<TransparentPlane> TransparentPlanes;
public uint Unknown64;
public uint Unknown65;
public uint Unknown66;
public List<CollisionMoppCode> CollisionMoppCodes;
public uint Unknown67;
public float CollisionWorldBoundsXMin;
public float CollisionWorldBoundsXMax;
public float CollisionWorldBoundsYMin;
public float CollisionWorldBoundsYMax;
public float CollisionWorldBoundsZMin;
public float CollisionWorldBoundsZMax;
public List<BreakableSurfaceMoppCode> BreakableSurfaceMoppCodes;
public List<BreakableSurfaceKeyTableBlock> BreakableSurfaceKeyTable;
public uint Unknown68;
public uint Unknown69;
public uint Unknown70;
public uint Unknown71;
public uint Unknown72;
public uint Unknown73;
public int Unknown74;
public List<Section2> Sections2;
public List<CompressionInfoBlock2> CompressionInfo2;
public List<UnknownNodeyBlock2> UnknownNodey2;
public List<UnknownBlock6> Unknown75;
public uint Unknown76;
public uint Unknown77;
public uint Unknown78;
public List<UnknownSection2> UnknownSections2;
public List<NodeMap2> NodeMaps2;
public List<UnknownBlock7> Unknown79;
public uint Unknown80;
public uint Unknown81;
public uint Unknown82;
public List<UnknownYoBlock2> UnknownYo2;
public ushort ZoneAssetSalt2;
public ushort ZoneAssetIndex2;
public int UselessPadding2;
public uint Unknown83;
public uint Unknown84;
public uint Unknown85;
public uint Unknown86;
public uint Unknown87;
public uint Unknown88;
public ushort ZoneAssetSalt3;
public ushort ZoneAssetIndex3;
public int UselessPadding3;
public ushort ZoneAssetSalt4;
public ushort ZoneAssetIndex4;
public int UselessPadding4;
public int Unknown89;
[TagStructure(Size = 0x28)]
public class StructureSeam
{
public uint Unknown;
public uint Unknown2;
public uint Unknown3;
public uint Unknown4;
public List<UnknownBlock> Unknown5;
public List<SeamCluster> SeamClusters;
[TagStructure(Size = 0x4)]
public class UnknownBlock
{
public int Unknown;
}
[TagStructure(Size = 0x10)]
public class SeamCluster
{
public int ClusterIndex;
public float CentroidX;
public float CentroidY;
public float CentroidZ;
}
}
[TagStructure(Size = 0x18)]
public class CollisionMaterial
{
public TagInstance Shader;
public short GlobalMaterialIndex;
public short ConveyorSurfaceIndex;
public short SeamIndex;
public short Unknown;
}
[TagStructure(Size = 0x1)]
public class UnknownBlock
{
public sbyte Unknown;
}
[TagStructure(Size = 0x28)]
public class ClusterPortal
{
public short BackCluster;
public short FrontCluster;
public int PlaneIndex;
public float CentroidX;
public float CentroidY;
public float CentroidZ;
public float BoundingRadius;
public uint Flags;
public List<Vertex> Vertices;
[TagStructure(Size = 0xC)]
public class Vertex
{
public float X;
public float Y;
public float Z;
}
}
[TagStructure(Size = 0x78)]
public class UnknownBlock2
{
[TagField(Length = 32)] public string Name;
public uint Unknown;
public uint Unknown2;
public uint Unknown3;
public uint Unknown4;
public uint Unknown5;
public uint Unknown6;
public uint Unknown7;
public uint Unknown8;
public uint Unknown9;
public uint Unknown10;
public uint Unknown11;
public uint Unknown12;
public uint Unknown13;
public uint Unknown14;
public uint Unknown15;
public uint Unknown16;
public uint Unknown17;
public uint Unknown18;
public uint Unknown19;
public uint Unknown20;
public uint Unknown21;
public uint Unknown22;
}
[TagStructure(Size = 0x8)]
public class FogBlock
{
public StringID Name;
public short Unknown;
public short Unknown2;
}
[TagStructure(Size = 0x34)]
public class DetailObject
{
public uint Unknown;
public uint Unknown2;
public uint Unknown3;
public uint Unknown4;
public uint Unknown5;
public uint Unknown6;
public uint Unknown7;
public uint Unknown8;
public uint Unknown9;
public uint Unknown10;
public uint Unknown11;
public uint Unknown12;
public uint Unknown13;
}
[TagStructure(Size = 0xDC)]
public class Cluster
{
public float BoundsXMin;
public float BoundsXMax;
public float BoundsYMin;
public float BoundsYMax;
public float BoundsZMin;
public float BoundsZMax;
public sbyte Unknown;
public sbyte ScenarioSkyIndex;
public sbyte CameraEffectIndex;
public sbyte Unknown2;
public short BackgroundSoundEnvironmentIndex;
public short SoundClustersAIndex;
public short Unknown3;
public short Unknown4;
public short Unknown5;
public short Unknown6;
public short Unknown7;
public short RuntimeDecalStartIndex;
public short RuntimeDecalEntryCount;
public short Flags;
public uint Unknown8;
public uint Unknown9;
public uint Unknown10;
public List<Portal> Portals;
public int Unknown11;
public short Size;
public short Count;
public int Offset;
public int Unknown12;
public uint Unknown13;
public uint Unknown14;
public TagInstance Bsp;
public int ClusterIndex;
public int Unknown15;
public short Size2;
public short Count2;
public int Offset2;
public int Unknown16;
public uint Unknown17;
public uint Unknown18;
public uint Unknown19;
public List<CollisionMoppCode> CollisionMoppCodes;
public short ModelSectionIndex;
public short Unknown20;
public List<Seam> Seams;
public List<DecoratorGrid> DecoratorGrids;
public uint Unknown21;
public uint Unknown22;
public uint Unknown23;
public List<UnknownBlock> Unknown24;
public List<UnknownBlock2> Unknown25;
[TagStructure(Size = 0x2)]
public class Portal
{
public short PortalIndex;
}
[TagStructure(Size = 0x40)]
public class CollisionMoppCode
{
public int Unknown;
public short Size;
public short Count;
public int Offset;
public uint Unknown2;
public float OffsetX;
public float OffsetY;
public float OffsetZ;
public float OffsetScale;
public uint Unknown3;
public int DataSize;
public uint DataCapacity;
public sbyte Unknown4;
public sbyte Unknown5;
public sbyte Unknown6;
public sbyte Unknown7;
public List<Datum> Data;
public uint Unknown8;
[TagStructure(Size = 0x1)]
public class Datum
{
public byte DataByte;
}
}
[TagStructure(Size = 0x1)]
public class Seam
{
public sbyte SeamIndex;
}
[TagStructure(Size = 0x30)]
public class DecoratorGrid
{
public short Amount;
public sbyte DecoratorIndex;
public sbyte DecoratorIndexScattering;
public int Unknown;
public float PositionX;
public float PositionY;
public float PositionZ;
public float Radius;
public float GridSizeX;
public float GridSizeY;
public float GridSizeZ;
public float BoundingSphereX;
public float BoundingSphereY;
public float BoundingSphereZ;
}
[TagStructure(Size = 0x4)]
public class UnknownBlock
{
public short Unknown;
public short Unknown2;
}
[TagStructure(Size = 0x10)]
public class UnknownBlock2
{
public float Unknown;
public float Unknown2;
public float Unknown3;
public short Unknown4;
public short Unknown5;
}
}
[TagStructure(Size = 0x24)]
public class Material
{
public TagInstance Shader;
public List<Property> Properties;
public int Unknown;
public sbyte BreakableSurfaceIndex;
public sbyte Unknown2;
public sbyte Unknown3;
public sbyte Unknown4;
[TagStructure(Size = 0xC)]
public class Property
{
public int Type;
public short IntValue;
public float RealValue;
}
}
[TagStructure(Size = 0x2)]
public class SkyOwnerClusterBlock
{
public short ClusterOwner;
}
[TagStructure(Size = 0x58)]
public class BackgroundSoundEnvironmentPaletteBlock
{
public StringID Name;
public TagInstance SoundEnvironment;
public int Unknown;
public float CutoffDistance;
public float InterpolationSpeed;
public TagInstance BackgroundSound;
public TagInstance InsideClusterSound;
public float CutoffDistance2;
public uint ScaleFlags;
public float InteriorScale;
public float PortalScale;
public float ExteriorScale;
public float InterpolationSpeed2;
}
[TagStructure(Size = 0x3C)]
public class Marker
{
[TagField(Length = 32)] public string Name;
public uint RotationI;
public uint RotationJ;
public uint RotationK;
public uint RotationW;
public uint PositionX;
public uint PositionY;
public uint PositionZ;
}
[TagStructure(Size = 0x10)]
public class Light
{
public TagInstance Light2;
}
[TagStructure(Size = 0x2)]
public class UnknownBlock3
{
public short Unknown;
}
[TagStructure(Size = 0x24)]
public class RuntimeDecal
{
public short PaletteIndex;
public sbyte Yaw;
public sbyte Pitch;
public float I;
public float J;
public float K;
public float W;
public float X;
public float Y;
public float Z;
public float Scale;
}
[TagStructure(Size = 0x24)]
public class EnvironmentObjectPaletteBlock
{
public TagInstance Definition;
public TagInstance Model;
public uint ObjectType;
}
[TagStructure(Size = 0x6C)]
public class EnvironmentObject
{
[TagField(Length = 32)] public string Name;
public float RotationI;
public float RotationJ;
public float RotationK;
public float RotationW;
public float PositionX;
public float PositionY;
public float PositionZ;
public float Scale;
public short PaletteIndex;
public short Unknown;
public int UniqueId;
[TagField(Length = 32)] public string ScenarioObjectName;
public uint Unknown2;
}
[TagStructure(Size = 0x78)]
public class InstancedGeometryInstance
{
public float Scale;
public float ForwardI;
public float ForwardJ;
public float ForwardK;
public float LeftI;
public float LeftJ;
public float LeftK;
public float UpI;
public float UpJ;
public float UpK;
public float PositionX;
public float PositionY;
public float PositionZ;
public short ModelSectionIndex;
public ushort Flags;
public short UnknownYoIndex;
public short Unknown;
public uint Unknown2;
public float BoundingSphereX;
public float BoundingSphereY;
public float BoundingSphereZ;
public float BoundingSphereRadius1;
public float BoundingSphereRadius2;
public StringID Name;
public short PathfindingPolicy;
public short LightmappingPolicy;
public uint Unknown3;
public List<CollisionDefinition> CollisionDefinitions;
public short Unknown4;
public short Unknown5;
public short Unknown6;
public short Unknown7;
public uint Unknown8;
[TagStructure(Size = 0x70)]
public class CollisionDefinition
{
public int Unknown;
public short Size;
public short Count;
public int Offset;
public int Unknown2;
public uint Unknown3;
public uint Unknown4;
public uint Unknown5;
public uint Unknown6;
public float Unknown7;
public float Unknown8;
public float Unknown9;
public uint Unknown10;
public float Unknown11;
public float Unknown12;
public float Unknown13;
public uint Unknown14;
public int Unknown15;
public uint Unknown16;
public sbyte BspIndex;
public sbyte Unknown17;
public short InstancedGeometryIndex;
public float Unknown18;
public int Unknown19;
public short Size2;
public short Count2;
public int Offset2;
public int Unknown20;
public uint Unknown21;
public uint Unknown22;
public uint Unknown23;
public float Unknown24;
}
}
[TagStructure(Size = 0x10)]
public class Decorator
{
public TagInstance Decorator2;
}
[TagStructure(Size = 0x4C)]
public class Section
{
public List<Submesh> Submeshes;
public List<VertexGroup> VertexGroups;
public short ValidMeshIndex;
public short ValidWorldMeshIndex;
public short ValidTransparent3MeshIndex;
public short ValidOpaqueMeshIndex;
public int RawId;
public short ValidWaterMeshIndex1;
public short ValidWaterMeshIndex2;
public short ValidSectionIndex;
public short ValidWaterSectionIndex;
public sbyte TransparentNodesPerVertex;
public sbyte RigidNode;
public MeshTypeValue MeshType;
public sbyte OpaqueMaxNodesVertex;
public sbyte Unknown;
public sbyte Unknown2;
public sbyte Unknown3;
public sbyte Unknown4;
public List<InstancedGeometryIndex> InstancedGeometryIndices;
public List<UnknownWaterBlock> UnknownWater;
[TagStructure(Size = 0x10)]
public class Submesh
{
public short MaterialIndex;
public short UnknownNodeyIndex;
public short IndexBufferStart;
public short IndexBufferCount;
public short VertexGroupIndex;
public short VertexGroupCount;
public sbyte UnknownEnum;
public byte Flags;
public short VertexBufferCount;
}
[TagStructure(Size = 0x8)]
public class VertexGroup
{
public short IndexBufferStart;
public short IndexBufferCount;
public short ParentSubmeshIndex;
public short VertexBufferCount;
}
public enum MeshTypeValue : sbyte
{
World,
Rigid,
Skinned,
ParticleModel,
FlatWorld,
FlatRigid,
FlatSkinned,
Screen,
Debug,
Transparent,
Particle,
Contrail,
LightVolume,
ChudSimple,
ChudFancy,
Decorator,
TinyPosition,
PatchyFog,
Water,
Ripple,
Implicit,
Beam,
}
[TagStructure(Size = 0x10)]
public class InstancedGeometryIndex
{
public short InstancedGeometrySectionIndex1;
public short InstancedGeometrySectionIndex2;
public List<InstancedGeometrySectionContent> InstancedGeometrySectionContents;
[TagStructure(Size = 0x2)]
public class InstancedGeometrySectionContent
{
public short InstancedGeometryIndex;
}
}
[TagStructure(Size = 0x2)]
public class UnknownWaterBlock
{
public short Unknown;
}
}
[TagStructure(Size = 0x2C)]
public class CompressionInfoBlock
{
public short Unknown;
public short Unknown2;
public float PositionBoundsXMin;
public float PositionBoundsXMax;
public float PositionBoundsYMin;
public float PositionBoundsYMax;
public float PositionBoundsZMin;
public float PositionBoundsZMax;
public float TexcoordBoundsXMin;
public float TexcoordBoundsXMax;
public float TexcoordBoundsYMin;
public float TexcoordBoundsYMax;
}
[TagStructure(Size = 0x30)]
public class UnknownNodeyBlock
{
public float Unknown;
public float Unknown2;
public float Unknown3;
public float Unknown4;
public float Unknown5;
public float Unknown6;
public float Unknown7;
public float Unknown8;
public sbyte NodeIndex;
public sbyte NodeIndex2;
public sbyte NodeIndex3;
public sbyte NodeIndex4;
public float Unknown9;
public float Unknown10;
public float Unknown11;
}
[TagStructure(Size = 0x18)]
public class UnknownBlock4
{
public short Unknown;
public short Unknown2;
public byte[] Unknown3;
}
[TagStructure(Size = 0x20)]
public class UnknownSection
{
public byte[] Unknown;
public List<UnknownBlock> Unknown2;
[TagStructure(Size = 0x2)]
public class UnknownBlock
{
public short Unknown;
}
}
[TagStructure(Size = 0xC)]
public class NodeMap
{
public List<UnknownBlock> Unknown;
[TagStructure(Size = 0x1)]
public class UnknownBlock
{
public byte NodeIndex;
}
}
[TagStructure(Size = 0xC)]
public class UnknownBlock5
{
public List<UnknownBlock> Unknown;
[TagStructure(Size = 0x30)]
public class UnknownBlock
{
public uint Unknown;
public uint Unknown2;
public uint Unknown3;
public uint Unknown4;
public uint Unknown5;
public uint Unknown6;
public uint Unknown7;
public uint Unknown8;
public uint Unknown9;
public uint Unknown10;
public uint Unknown11;
public uint Unknown12;
}
}
[TagStructure(Size = 0x10)]
public class UnknownYoBlock
{
public uint Unknown;
public uint Unknown2;
public uint Unknown3;
public short UnknownIndex;
public short Unknown4;
}
[TagStructure(Size = 0x1C)]
public class UnknownSoundClustersABlock
{
public short BackgroundSoundEnvironmentIndex;
public short Unknown;
public List<PortalDesignator> PortalDesignators;
public List<InteriorClusterIndex> InteriorClusterIndices;
[TagStructure(Size = 0x2)]
public class PortalDesignator
{
public short PortalDesignator2;
}
[TagStructure(Size = 0x2)]
public class InteriorClusterIndex
{
public short InteriorClusterIndex2;
}
}
[TagStructure(Size = 0x1C)]
public class UnknownSoundClustersBBlock
{
public short BackgroundSoundEnvironmentIndex;
public short Unknown;
public List<PortalDesignator> PortalDesignators;
public List<InteriorClusterIndex> InteriorClusterIndices;
[TagStructure(Size = 0x2)]
public class PortalDesignator
{
public short PortalDesignator2;
}
[TagStructure(Size = 0x2)]
public class InteriorClusterIndex
{
public short InteriorClusterIndex2;
}
}
[TagStructure(Size = 0x1C)]
public class UnknownSoundClustersCBlock
{
public short BackgroundSoundEnvironmentIndex;
public short Unknown;
public List<PortalDesignator> PortalDesignators;
public List<InteriorClusterIndex> InteriorClusterIndices;
[TagStructure(Size = 0x2)]
public class PortalDesignator
{
public short PortalDesignator2;
}
[TagStructure(Size = 0x2)]
public class InteriorClusterIndex
{
public short InteriorClusterIndex2;
}
}
[TagStructure(Size = 0x14)]
public class TransparentPlane
{
public short ModelSectionIndex;
public short PartIndex;
public float PlaneI;
public float PlaneJ;
public float PlaneK;
public float PlaneD;
}
[TagStructure(Size = 0x40)]
public class CollisionMoppCode
{
public int Unknown;
public short Size;
public short Count;
public int Offset;
public uint Unknown2;
public float OffsetX;
public float OffsetY;
public float OffsetZ;
public float OffsetScale;
public uint Unknown3;
public int DataSize;
public uint DataCapacity;
public sbyte Unknown4;
public sbyte Unknown5;
public sbyte Unknown6;
public sbyte Unknown7;
public List<Datum> Data;
public uint Unknown8;
[TagStructure(Size = 0x1)]
public class Datum
{
public byte DataByte;
}
}
[TagStructure(Size = 0x40)]
public class BreakableSurfaceMoppCode
{
public int Unknown;
public short Size;
public short Count;
public int Offset;
public uint Unknown2;
public float OffsetX;
public float OffsetY;
public float OffsetZ;
public float OffsetScale;
public uint Unknown3;
public int DataSize;
public uint DataCapacity;
public sbyte Unknown4;
public sbyte Unknown5;
public sbyte Unknown6;
public sbyte Unknown7;
public List<Datum> Data;
public uint Unknown8;
[TagStructure(Size = 0x1)]
public class Datum
{
public byte DataByte;
}
}
[TagStructure(Size = 0x20)]
public class BreakableSurfaceKeyTableBlock
{
public short InstancedGeometryIndex;
public sbyte BreakableSurfaceIndex;
public byte BreakableSurfaceSubIndex;
public int SeedSurfaceIndex;
public float X0;
public float X1;
public float Y0;
public float Y1;
public float Z0;
public float Z1;
}
[TagStructure(Size = 0x4C)]
public class Section2
{
public List<Submesh> Submeshes;
public List<VertexGroup> VertexGroups;
public short ValidMeshIndex;
public short ValidWorldMeshIndex;
public short ValidTransparent3MeshIndex;
public short ValidOpaqueMeshIndex;
public int RawId;
public short ValidWaterMeshIndex1;
public short ValidWaterMeshIndex2;
public short ValidSectionIndex;
public short ValidWaterSectionIndex;
public sbyte TransparentNodesPerVertex;
public sbyte RigidNode;
public MeshTypeValue MeshType;
public sbyte OpaqueMaxNodesVertex;
public sbyte Unknown;
public sbyte Unknown2;
public sbyte Unknown3;
public sbyte Unknown4;
public List<InstancedGeometryIndex> InstancedGeometryIndices;
public List<UnknownWaterBlock> UnknownWater;
[TagStructure(Size = 0x10)]
public class Submesh
{
public short MaterialIndex;
public short UnknownNodeyIndex;
public short IndexBufferStart;
public short IndexBufferCount;
public short VertexGroupIndex;
public short VertexGroupCount;
public sbyte UnknownEnum;
public byte Flags;
public short VertexBufferCount;
}
[TagStructure(Size = 0x8)]
public class VertexGroup
{
public short IndexBufferStart;
public short IndexBufferCount;
public short ParentSubmeshIndex;
public short VertexBufferCount;
}
public enum MeshTypeValue : sbyte
{
World,
Rigid,
Skinned,
ParticleModel,
FlatWorld,
FlatRigid,
FlatSkinned,
Screen,
Debug,
Transparent,
Particle,
Contrail,
LightVolume,
ChudSimple,
ChudFancy,
Decorator,
TinyPosition,
PatchyFog,
Water,
Ripple,
Implicit,
Beam,
}
[TagStructure(Size = 0x10)]
public class InstancedGeometryIndex
{
public short InstancedGeometrySectionIndex1;
public short InstancedGeometrySectionIndex2;
public List<InstancedGeometrySectionContent> InstancedGeometrySectionContents;
[TagStructure(Size = 0x2)]
public class InstancedGeometrySectionContent
{
public short InstancedGeometryIndex;
}
}
[TagStructure(Size = 0x2)]
public class UnknownWaterBlock
{
public short Unknown;
}
}
[TagStructure(Size = 0x2C)]
public class CompressionInfoBlock2
{
public short Unknown;
public short Unknown2;
public float PositionBoundsXMin;
public float PositionBoundsXMax;
public float PositionBoundsYMin;
public float PositionBoundsYMax;
public float PositionBoundsZMin;
public float PositionBoundsZMax;
public float TexcoordBoundsXMin;
public float TexcoordBoundsXMax;
public float TexcoordBoundsYMin;
public float TexcoordBoundsYMax;
}
[TagStructure(Size = 0x30)]
public class UnknownNodeyBlock2
{
public float Unknown;
public float Unknown2;
public float Unknown3;
public float Unknown4;
public float Unknown5;
public float Unknown6;
public float Unknown7;
public float Unknown8;
public sbyte NodeIndex;
public sbyte NodeIndex2;
public sbyte NodeIndex3;
public sbyte NodeIndex4;
public float Unknown9;
public float Unknown10;
public float Unknown11;
}
[TagStructure(Size = 0x18)]
public class UnknownBlock6
{
public short Unknown;
public short Unknown2;
public byte[] Unknown3;
}
[TagStructure(Size = 0x20)]
public class UnknownSection2
{
public byte[] Unknown;
public List<UnknownBlock> Unknown2;
[TagStructure(Size = 0x2)]
public class UnknownBlock
{
public short Unknown;
}
}
[TagStructure(Size = 0xC)]
public class NodeMap2
{
public List<UnknownBlock> Unknown;
[TagStructure(Size = 0x1)]
public class UnknownBlock
{
public byte NodeIndex;
}
}
[TagStructure(Size = 0xC)]
public class UnknownBlock7
{
public List<UnknownBlock> Unknown;
[TagStructure(Size = 0x30)]
public class UnknownBlock
{
public uint Unknown;
public uint Unknown2;
public uint Unknown3;
public uint Unknown4;
public uint Unknown5;
public uint Unknown6;
public uint Unknown7;
public uint Unknown8;
public uint Unknown9;
public uint Unknown10;
public uint Unknown11;
public uint Unknown12;
}
}
[TagStructure(Size = 0x10)]
public class UnknownYoBlock2
{
public uint Unknown;
public uint Unknown2;
public uint Unknown3;
public short UnknownIndex;
public short Unknown4;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment