public void Export_MLOD(StreamWriter w, GenericRCOLResource rcolResource, MLOD mlod, MLOD.Mesh mesh) { float[] uvScales = rcolResource.GetUVScales(mesh); if (mesh.GeometryStates.Count > 0) { w.WriteLine(";"); w.WriteLine("; Extended format: GeoStates follow IBUF"); w.WriteLine(";"); } if (mesh.Flags != 0) { w.WriteLine(";"); w.WriteLine("; Extended format: MeshFlags follow IBUF" + (mesh.GeometryStates.Count > 0 ? " and GeoStates" : "")); w.WriteLine("; (They are ignored on import.)"); w.WriteLine(";"); } VRTF vrtf = GenericRCOLResource.ChunkReference.GetBlock(rcolResource, mesh.VertexFormatIndex) as VRTF; bool isDefault = vrtf == null; if (isDefault) { vrtf = VRTF.CreateDefaultForMesh(mesh); w.WriteLine(";;-marker: vrtf is default for mesh"); } w.Export_VRTF(mpb, vrtf); w.Export_SKIN(mpb, GenericRCOLResource.ChunkReference.GetBlock(rcolResource, mesh.SkinControllerIndex) as SKIN, mesh); Export_VBUF_Main(w, GenericRCOLResource.ChunkReference.GetBlock(rcolResource, mesh.VertexBufferIndex) as VBUF, vrtf, uvScales, mesh); Export_IBUF_Main(w, GenericRCOLResource.ChunkReference.GetBlock(rcolResource, mesh.IndexBufferIndex) as IBUF, mesh); //For backward compatibility, these come after the IBUFs Export_MeshGeoStates(w, vrtf, uvScales, mlod, mesh, GenericRCOLResource.ChunkReference.GetBlock(rcolResource, mesh.VertexBufferIndex) as VBUF, GenericRCOLResource.ChunkReference.GetBlock(rcolResource, mesh.IndexBufferIndex) as IBUF); if (mesh.Flags != 0) { w.WriteLine(";"); w.WriteLine("; Extended format: MeshFlags"); w.WriteLine(";"); w.WriteLine("flags " + mesh.Flags); w.Flush(); } }
public void Export_MLOD(StreamWriter w, GenericRCOLResource rcolResource, MLOD mlod, MLOD.Mesh mesh) { float[] uvScales = rcolResource.GetUVScales(mesh); VRTF vrtf = GenericRCOLResource.ChunkReference.GetBlock(rcolResource, mesh.VertexFormatIndex) as VRTF; bool isDefault = vrtf == null; if (isDefault) { vrtf = VRTF.CreateDefaultForMesh(mesh); w.WriteLine(";;-marker: vrtf is default for mesh"); } w.Export_VRTF(mpb, vrtf); w.Export_SKIN(mpb, GenericRCOLResource.ChunkReference.GetBlock(rcolResource, mesh.SkinControllerIndex) as SKIN, mesh); Export_VBUF_Main(w, GenericRCOLResource.ChunkReference.GetBlock(rcolResource, mesh.VertexBufferIndex) as VBUF, vrtf, uvScales, mesh); Export_IBUF_Main(w, GenericRCOLResource.ChunkReference.GetBlock(rcolResource, mesh.IndexBufferIndex) as IBUF, mesh); }