public void WriteToFile(NavigationWriter writer) { writer.Write(unk0); writer.Write(fileIDHPD); writer.Write(unk3HPD); writer.Write(bitFlagsHPD); writer.Write(vertSize); writer.Write(triSize); for (int i = 0; i < vertices.Length; i++) { var vertex = vertices[i]; writer.Write(vertex.Unk7); // | 0x80000000 Vector3 pos = vertex.Position; float z = pos.Z; // TODO: Construct KynogonUtils to accomodate this pos.Z = -pos.Y; pos.Y = z; Vector3Utils.WriteToFile(pos, writer); // NB: DO NOT SET vertex.Position as pos!! writer.Write(vertex.Unk0); writer.Write(vertex.Unk1); writer.Write(vertex.Unk2); writer.Write(vertex.Unk3); writer.Write(vertex.Unk4); writer.Write(vertex.Unk5); writer.Write(vertex.Unk6); } for (int i = 0; i < connections.Length; i++) { var connection = connections[i]; writer.Write(connection.Flags | 0x80000000); writer.Write(connection.NodeID); writer.Write(connection.ConnectedNodeID); } runtimeMesh.WriteToFile(writer); writer.Write(Footer); // write footer /* if (!runtimeMesh.bDEBUG_HASEXTRADATA) * { * writer.Write(Padding); * StringHelpers.WriteString(writer, Name); * writer.Write(Name.Length + 1); // extra 1 is the padding * writer.Write(303296513); * }*/ }
public void WriteToFile(BinaryWriter writer) { writer.Write(unk0); writer.Write(fileIDHPD); writer.Write(unk3HPD); writer.Write(bitFlagsHPD); writer.Write(vertSize); writer.Write(triSize); for (int i = 0; i < vertices.Length; i++) { var vertex = vertices[i]; writer.Write(vertex.Unk7); Vector3 pos = vertex.Position; float z = pos.Z; pos.Z = -pos.Y; pos.Y = z; vertex.Position = pos; Vector3Extenders.WriteToFile(vertex.Position, writer); writer.Write(vertex.Unk0); writer.Write(vertex.Unk1); writer.Write(vertex.Unk2); writer.Write(vertex.Unk3); writer.Write(vertex.Unk4); writer.Write(vertex.Unk5); writer.Write(vertex.Unk6); } for (int i = 0; i < connections.Length; i++) { var connection = connections[i]; writer.Write(connection.Flags); writer.Write(connection.NodeID); writer.Write(connection.ConnectedNodeID); } runtimeMesh.WriteToFile(writer); }