Esempio n. 1
0
        public LightmassPrimitiveSettings[] LightmassSettings; //ME3

        protected override void Serialize(SerializingContainer2 sc)
        {
            sc.Serialize(ref Bounds);
            sc.BulkSerialize(ref Vectors, SCExt.Serialize, 12);
            sc.BulkSerialize(ref Points, SCExt.Serialize, 12);
            sc.BulkSerialize(ref Nodes, SCExt.Serialize, 64);
            sc.Serialize(ref Self);
            sc.Serialize(ref Surfs, SCExt.Serialize);
            sc.BulkSerialize(ref Verts, SCExt.Serialize, sc.Game == MEGame.ME3 ? 16 : 24);
            sc.Serialize(ref NumSharedSides);
            sc.Serialize(ref Zones, SCExt.Serialize);
            sc.Serialize(ref Polys);
            sc.BulkSerialize(ref LeafHulls, SCExt.Serialize, 4);
            sc.BulkSerialize(ref Leaves, SCExt.Serialize, 4);
            sc.Serialize(ref RootOutside);
            sc.Serialize(ref Linked);
            sc.BulkSerialize(ref PortalNodes, SCExt.Serialize, 4);
            if (sc.Game != MEGame.UDK)
            {
                sc.BulkSerialize(ref ShadowVolume, SCExt.Serialize, 16);
            }
            else if (sc.IsLoading)
            {
                ShadowVolume = Array.Empty <MeshEdge>();
            }
            sc.Serialize(ref NumVertices);
            sc.BulkSerialize(ref VertexBuffer, SCExt.Serialize, 36);
            if (sc.Game >= MEGame.ME3)
            {
                sc.Serialize(ref LightingGuid);
                sc.Serialize(ref LightmassSettings, SCExt.Serialize);
            }
            else if (sc.IsLoading)
            {
                LightmassSettings = new[]
                {
                    new LightmassPrimitiveSettings
                    {
                        FullyOccludedSamplesFraction = 1,
                        EmissiveLightFalloffExponent = 2,
                        EmissiveBoost = 1,
                        DiffuseBoost  = 1,
                        SpecularBoost = 1
                    }
                };
            }
        }