Esempio n. 1
0
        private void SerializeLODs(SerializingContainer Container)
        {
            int count = 0;

            if (!Container.isLoading)
            {
                count = LODModels.Count();
            }
            count = Container + count;
            if (Container.isLoading)
            {
                LODModels = new List <LODModelStruct>();
                for (int i = 0; i < count; i++)
                {
                    LODModels.Add(new LODModelStruct());
                }
            }
            for (int i = 0; i < count; i++)
            {
                LODModelStruct lod = LODModels[i];
                lod.Serialize(Container);
                LODModels[i] = lod;
            }
            //ReadEnd = Container.GetPos();
        }
Esempio n. 2
0
 private void GenerateDXMeshes()
 {
     DirectXSections = new List <CustomVertex.PositionTextured[]>();
     for (int i = 0; i < LODModels.Count; i++)
     {
         LODModelStruct l = LODModels[i];
         CustomVertex.PositionTextured[] list = new CustomVertex.PositionTextured[l.IndexBuffer.Indexes.Count];
         for (int j = 0; j < l.IndexBuffer.Indexes.Count; j++)
         {
             int idx = l.IndexBuffer.Indexes[j];
             GPUSkinVertexStruct v = l.VertexBufferGPUSkin.Vertices[idx];
             list[j] = new CustomVertex.PositionTextured(v.Position, HalfToFloat(v.U), HalfToFloat(v.V));
         }
         DirectXSections.Add(list);
     }
 }
        private void SerializeLODs(SerializingContainer Container)
        {
            int count = 0;

            if (!Container.isLoading)
            {
                count = LODModels.Count();
            }
            count = Container + count;
            // this is the actual number of lods but we only care about lod0 (and it prevents us from looking for other lods in ME1/ME2)
            // so we force count to 1.
            count = 1;
            if (Container.isLoading)
            {
                LODModels = new List <LODModelStruct>();
                for (int i = 0; i < count; i++)
                {
                    LODModels.Add(new LODModelStruct());
                }
            }
            for (int i = 0; i < count; i++)
            {
                LODModelStruct lod     = LODModels[i];
                MEVersion      version = MEVersion.ME1;
                if (Owner is ME2Package)
                {
                    version = MEVersion.ME2;
                }
                else if (Owner is ME3Package)
                {
                    version = MEVersion.ME3;
                }
                lod.Serialize(Container, version);
                LODModels[i] = lod;
            }
        }