public override void Save(HSDWriter Writer) { Writer.AddObject(Vertices); foreach (var v in Vertices) { Writer.Write(v.X); Writer.Write(v.Y); Writer.Write(v.Z); } Writer.AddObject(Faces); foreach (var v in Faces) { Writer.WriteObject(v); } Writer.AddObject(Joints); foreach (var v in Joints) { Writer.WriteObject(v); } Writer.AddObject(ZoneVertices); foreach (var v in ZoneVertices) { Writer.Write(v.X); Writer.Write(v.Y); Writer.Write(v.Z); } Writer.AddObject(ZoneFaces); foreach (var v in ZoneFaces) { Writer.WriteObject(v); } Writer.AddObject(ZoneJoints); foreach (var v in ZoneJoints) { Writer.WriteObject(v); } Writer.AddObject(this); Writer.WritePointer(Vertices); Writer.Write(Vertices.Count); Writer.WritePointer(Faces); Writer.Write(Faces.Count); Writer.WritePointer(Joints); Writer.Write(Joints.Count); Writer.WritePointer(ZoneVertices); Writer.Write(ZoneVertices.Count); Writer.WritePointer(ZoneFaces); Writer.Write(ZoneFaces.Count); Writer.WritePointer(ZoneJoints); Writer.Write(ZoneJoints.Count); }
public override void Save(HSDWriter Writer) { Writer.WriteObject(TlutArray); Writer.WriteObject(ImageArray); base.Save(Writer); Writer.WritePointerAt((int)(Writer.BaseStream.Position - 12), ImageArray); Writer.WritePointerAt((int)(Writer.BaseStream.Position - 8), TlutArray); }
public override void Save(HSDWriter Writer) { if (Next != null) { Next.Save(Writer); } Writer.WriteObject(VertexAttributes); Writer.WriteBuffer(DisplayListBuffer); if (BindGroups != null) { Writer.WriteObject(BindGroups); } Writer.AddObject(this); Writer.Write(0); if (Next != null) { Writer.WritePointer(Next); } else { Writer.Write(0); } Writer.WritePointer(VertexAttributes); Writer.Write((ushort)Flags); if (DisplayListBuffer == null) { Writer.Write((ushort)0); } else { Writer.Write((ushort)(DisplayListBuffer.Length / 32)); } Writer.WritePointer(DisplayListBuffer); Writer.WritePointer(BindGroups); }
public override void Save(HSDWriter Writer) { if (MatAnimJoint == null) { Writer.WriteObject(MatAnimJoint); } foreach (HSD_AnimNode node in Nodes) { foreach (HSD_Track t in node.Tracks) { t.Save(Writer); } } object array = new object(); Writer.AddObject(array); HSD_Track FirstTrack = null; foreach (HSD_AnimNode node in Nodes) { Writer.Write((byte)node.Tracks.Count); foreach (HSD_Track t in node.Tracks) { if (FirstTrack == null) { FirstTrack = t; } } } Writer.Write((byte)0xFF); Writer.Align(4); Writer.AddObject(this); Writer.Write(MatAnimJoint == null ? 1 : -1); if (MatAnimJoint == null) { Writer.Write(0); } else { Writer.WritePointer(MatAnimJoint); } Writer.Write(FrameCount); Writer.WritePointer(array); Writer.WritePointer(FirstTrack); }
public override void Save(HSDWriter Writer) { if (Elements == null) { return; } foreach (IHSDNode node in Elements) { Writer.WriteObject(node); } Writer.AddObject(this); foreach (IHSDNode node in Elements) { Writer.WritePointer(node); } Writer.Write(0); }
public override void Save(HSDWriter Writer) { Writer.AddObject(Tables); foreach (var v in Tables) { v.Save(Writer); } Writer.WriteObject(RootNode); Writer.AddObject(this); Writer.WritePointer(RootNode); if (Tables.Count > 0) { Writer.WritePointer(Tables); } else { Writer.Write(0); } Writer.Write(Tables.Count); }