public override void Write(HKX hkx, HKXSection section, BinaryWriterEx bw, uint sectionBaseOffset, HKXVariation variation) { SectionOffset = (uint)bw.Position - sectionBaseOffset; bw.WriteInt64(0); bw.WriteInt64(0); bw.WriteByte(Unk10); bw.WriteByte(Unk11); bw.WriteByte(Unk12); bw.WriteByte(Unk13); bw.WriteInt32(Unk14); bw.WriteInt64(0); bw.WriteInt64(0); if (variation == HKXVariation.HKXDS3) { bw.WriteInt64(0); } bw.WriteUInt32(0xFFFFFFFF); bw.WriteInt32(0); bw.WriteUInt64(0); bw.WriteUInt32(0); bw.WriteUInt32(0x80000000); bw.WriteUInt64(0); bw.WriteUInt32(0); bw.WriteUInt32(0x80000000); bw.WriteUInt32(0xFFFFFFFF); bw.WriteInt32(0); MeshShapeData.WritePlaceholder(bw, sectionBaseOffset); Unk68.Write(hkx, section, bw, sectionBaseOffset, variation); bw.WriteInt32(Unk78); bw.WriteInt32(0); Unk80.Write(hkx, section, bw, sectionBaseOffset, variation); bw.WriteInt32(Unk90); bw.WriteInt32(0); bw.WriteUInt64(0); CustomParam.WritePlaceholder(bw, sectionBaseOffset); UnkA8.Write(hkx, section, bw, sectionBaseOffset, variation); if (variation == HKXVariation.HKXDS3) { bw.WriteInt64(0); } DataSize = (uint)bw.Position - sectionBaseOffset - SectionOffset; Unk68.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); Unk80.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); UnkA8.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); }
public override void Write(HKX hkx, HKXSection section, BinaryWriterEx bw, uint sectionBaseOffset, HKXVariation variation) { CompressedBVH.Write(hkx, section, bw, sectionBaseOffset, variation); bw.WriteVector4(BoundingBoxMin); bw.WriteVector4(BoundingBoxMax); bw.WriteVector3(SmallVertexOffset); bw.WriteVector3(SmallVertexScale); bw.WriteUInt32(SmallVerticesBase); bw.WriteUInt32(((uint)(VertexIndicesIndex) << 8) | (uint)(VertexIndicesLength)); bw.WriteUInt32(((uint)(ByteIndicesIndex) << 8) | (uint)(ByteIndicesLength)); bw.WriteUInt32(((uint)(Unk54Index) << 8) | (uint)(Unk54Length)); bw.WriteUInt32(Unk58); bw.WriteUInt32(Unk5C); }
public override void Write(HKX hkx, HKXSection section, BinaryWriterEx bw, uint sectionBaseOffset, HKXVariation variation) { nodes.Write(hkx, section, bw, sectionBaseOffset, variation); bw.WriteVector4(BoundingBoxMin); bw.WriteVector4(BoundingBoxMax); bw.WriteVector3(SmallVertexOffset); bw.WriteVector3(SmallVertexScale); bw.WriteUInt32(firstPackedVertex); bw.WriteUInt32(((uint)(sharedVerticesIndex) << 8) | (uint)(sharedVerticesLength)); bw.WriteUInt32(((uint)(primitivesIndex) << 8) | (uint)(primitivesLength)); bw.WriteUInt32(((uint)(dataRunsIndex) << 8) | (uint)(dataRunsLendth)); bw.WriteUInt32(Unk58); bw.WriteUInt32(Unk5C); }
public override void Write(HKX hkx, HKXSection section, BinaryWriterEx bw, uint sectionBaseOffset, HKXVariation variation) { SectionOffset = (uint)bw.Position - sectionBaseOffset; WriteEmptyPointer(hkx, bw); WriteEmptyPointer(hkx, bw); WriteEmptyPointer(hkx, bw); WriteEmptyPointer(hkx, bw); bw.WriteSingle(Unk10); bw.WriteSingle(Unk14); bw.WriteSingle(Unk18); bw.WriteSingle(Unk1C); MoppCode.Write(hkx, section, bw, sectionBaseOffset, variation); bw.WriteUInt32(0); DataSize = (uint)bw.Position - sectionBaseOffset - SectionOffset; MoppCode.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); }
public override void Write(HKX hkx, HKXSection section, BinaryWriterEx bw, uint sectionBaseOffset, HKXVariation variation) { SectionOffset = (uint)bw.Position - sectionBaseOffset; WriteEmptyPointer(hkx, bw); WriteEmptyPointer(hkx, bw); Vertices.Write(hkx, section, bw, sectionBaseOffset, variation); if (variation != HKXVariation.HKSDeS) { WriteEmptyPointer(hkx, bw); bw.WriteUInt32(0); bw.WriteUInt32(0x80000000); } Indices16.Write(hkx, section, bw, sectionBaseOffset, variation); // Bunch of empty arrays WriteEmptyPointer(hkx, bw); bw.WriteUInt32(0); bw.WriteUInt32(0x80000000); WriteEmptyPointer(hkx, bw); bw.WriteUInt32(0); bw.WriteUInt32(0x80000000); WriteEmptyPointer(hkx, bw); bw.WriteUInt32(0); bw.WriteUInt32(0x80000000); WriteEmptyPointer(hkx, bw); bw.WriteUInt32(0); bw.WriteUInt32(0x80000000); WriteEmptyPointer(hkx, bw); bw.WriteUInt32(0); bw.WriteUInt32(0x80000000); bw.WriteUInt32(0); bw.WriteUInt32(0); DataSize = (uint)bw.Position - sectionBaseOffset - SectionOffset; Vertices.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); Indices16.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); }
public override void Write(HKX hkx, HKXSection section, BinaryWriterEx bw, uint sectionBaseOffset, HKXVariation variation) { SectionOffset = (uint)bw.Position - sectionBaseOffset; WriteEmptyPointer(hkx, bw); WriteEmptyPointer(hkx, bw); CompressedBVH.Write(hkx, section, bw, sectionBaseOffset, variation); bw.WriteVector4(BoundingBoxMin); bw.WriteVector4(BoundingBoxMax); bw.WriteUInt32(Unk40); bw.WriteUInt32(Unk44); bw.WriteUInt32(Unk48); bw.WriteUInt32(Unk4C); Chunks.Write(hkx, section, bw, sectionBaseOffset, variation); MeshIndices.Write(hkx, section, bw, sectionBaseOffset, variation); VertexIndices.Write(hkx, section, bw, sectionBaseOffset, variation); SmallVertices.Write(hkx, section, bw, sectionBaseOffset, variation); LargeVertices.Write(hkx, section, bw, sectionBaseOffset, variation); UnkA0.Write(hkx, section, bw, sectionBaseOffset, variation); bw.WriteUInt64(UnkB0); UnkB8.Write(hkx, section, bw, sectionBaseOffset, variation); bw.WriteUInt64(UnkC8); DataSize = (uint)bw.Position - sectionBaseOffset - SectionOffset; CompressedBVH.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); Chunks.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); MeshIndices.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); VertexIndices.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); SmallVertices.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); LargeVertices.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); UnkA0.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); UnkB8.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); }
public override void Write(HKX hkx, HKXSection section, BinaryWriterEx bw, uint sectionBaseOffset, HKXVariation variation) { SectionOffset = (uint)bw.Position - sectionBaseOffset; WriteEmptyPointer(hkx, bw); WriteEmptyPointer(hkx, bw); meshTree.Write(hkx, section, bw, sectionBaseOffset, variation); bw.WriteVector4(BoundingBoxMin); bw.WriteVector4(BoundingBoxMax); bw.WriteUInt32(numPrimitiveKeys); bw.WriteUInt32(bitsPerKey); bw.WriteUInt32(maxKeyValue); bw.WriteUInt32(Unk4C); sections.Write(hkx, section, bw, sectionBaseOffset, variation); primitives.Write(hkx, section, bw, sectionBaseOffset, variation); sharedVerticesIndex.Write(hkx, section, bw, sectionBaseOffset, variation); packedVertices.Write(hkx, section, bw, sectionBaseOffset, variation); sharedVertices.Write(hkx, section, bw, sectionBaseOffset, variation); primitiveDataRuns.Write(hkx, section, bw, sectionBaseOffset, variation); bw.WriteUInt64(UnkB0); simdTree.Write(hkx, section, bw, sectionBaseOffset, variation); bw.WriteUInt64(UnkC8); DataSize = (uint)bw.Position - sectionBaseOffset - SectionOffset; meshTree.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); sections.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); primitives.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); sharedVerticesIndex.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); packedVertices.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); sharedVertices.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); primitiveDataRuns.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); simdTree.WriteReferenceData(hkx, section, bw, sectionBaseOffset, variation); }