Ejemplo n.º 1
0
        public void Vec3()
        {
            Vec3 vec3 = UnusedMarker.Vec3;

            Assert.True(UnusedMarker.IsUnused(vec3));

            vec3 = new Vec3(0, 250, 3);
            Assert.False(UnusedMarker.IsUnused(vec3));
        }
Ejemplo n.º 2
0
        public void UnsignedInteger()
        {
            uint myUint = UnusedMarker.UnsignedInteger;

            Assert.True(UnusedMarker.IsUnused(myUint));

            myUint = 51;
            Assert.False(UnusedMarker.IsUnused(myUint));
        }
Ejemplo n.º 3
0
        public void Integer()
        {
            int myInt = UnusedMarker.Integer;

            Assert.True(UnusedMarker.IsUnused(myInt));

            myInt = 5;
            Assert.False(UnusedMarker.IsUnused(myInt));
        }
Ejemplo n.º 4
0
        public void Float()
        {
            float myFloat = UnusedMarker.Float;

            Assert.True(UnusedMarker.IsUnused(myFloat));

            myFloat = 998.4f;
            Assert.False(UnusedMarker.IsUnused(myFloat));
        }
Ejemplo n.º 5
0
        public void Unused_Vec3()
        {
            using (var stream = new MemoryStream())
            {
                var serializer = new CrySerializer();

                var unused = UnusedMarker.Vector3;
                serializer.Serialize(stream, unused);

                unused = (Vector3)serializer.Deserialize(stream);
                Assert.True(UnusedMarker.IsUnused(unused));
            }
        }
Ejemplo n.º 6
0
        public void Unused_Float()
        {
            using (var stream = new MemoryStream())
            {
                var serializer = new CrySerializer();

                var unused = UnusedMarker.Float;
                serializer.Serialize(stream, unused);

                unused = (float)serializer.Deserialize(stream);
                Assert.True(UnusedMarker.IsUnused(unused));
            }
        }
Ejemplo n.º 7
0
        public void Unused_UnsignedInteger()
        {
            using (var stream = new MemoryStream())
            {
                var serializer = new CrySerializer();

                var unused = UnusedMarker.UnsignedInteger;
                serializer.Serialize(stream, unused);

                unused = (uint)serializer.Deserialize(stream);
                Assert.True(UnusedMarker.IsUnused(unused));
            }
        }
Ejemplo n.º 8
0
        bool UpdateMaterialElement(XElement materialElement, CharacterAttachmentMaterial material)
        {
            Debug.LogAlways("Updating material element for attachment {0} in slot {1}", material.Attachment.Name, material.Attachment.Slot.Name);
            var modifiedMaterial = false;

            var genMaskAttribute = materialElement.Attribute("StringGenMask");

            if (genMaskAttribute != null && genMaskAttribute.Value.Contains("%COLORMASKING"))
            {
                Debug.LogAlways("Writing color mask");
                var publicParamsElement = materialElement.Element("PublicParams");

                publicParamsElement.SetAttributeValue("ColorMaskR", material.ColorRed.ToString());
                publicParamsElement.SetAttributeValue("ColorMaskG", material.ColorGreen.ToString());
                publicParamsElement.SetAttributeValue("ColorMaskB", material.ColorBlue.ToString());
                publicParamsElement.SetAttributeValue("ColorMaskA", material.ColorAlpha.ToString());

                modifiedMaterial = true;
            }

            var texturesElement = materialElement.Element("Textures");

            if (texturesElement != null)
            {
                if (WriteTexture(texturesElement, "Diffuse", material.DiffuseTexture) ||
                    WriteTexture(texturesElement, "Specular", material.SpecularTexture) ||
                    WriteTexture(texturesElement, "Bumpmap", material.BumpmapTexture) ||
                    WriteTexture(texturesElement, "Custom", material.CustomTexture))
                {
                    modifiedMaterial = true;
                }
            }

            if (!UnusedMarker.IsUnused(DiffuseColor))
            {
                materialElement.SetAttributeValue("Diffuse", DiffuseColor.ToString());
            }

            if (!UnusedMarker.IsUnused(SpecularColor))
            {
                materialElement.SetAttributeValue("Specular", SpecularColor.ToString());
            }

            return(modifiedMaterial);
        }
Ejemplo n.º 9
0
        public ObjectReference(string name, object value)
        {
            m_name = name;
            Value  = value;

            Type valueType = m_value != null?m_value.GetType() : null;

            if (valueType == null)
            {
                m_serializationType = SerializationType.Null;
            }
            else if (valueType == typeof(IntPtr))
            {
                m_serializationType = SerializationType.IntPtr;
            }
            else if (valueType.IsPrimitive)
            {
                if (m_value is int && UnusedMarker.IsUnused((int)m_value))
                {
                    m_serializationType = SerializationType.UnusedMarker;
                }
                else if (m_value is uint && UnusedMarker.IsUnused((uint)m_value))
                {
                    m_serializationType = SerializationType.UnusedMarker;
                }
                else if (m_value is float && UnusedMarker.IsUnused((float)m_value))
                {
                    m_serializationType = SerializationType.UnusedMarker;
                }
                else
                {
                    m_serializationType = SerializationType.Any;
                }
            }
            else if (valueType == typeof(string))
            {
                m_serializationType = SerializationType.String;
            }
            else if (valueType.IsArray)
            {
                m_serializationType = SerializationType.Array;
            }
            else if (valueType.IsEnum)
            {
                m_serializationType = SerializationType.Enum;
            }
            else if (valueType.Implements <IList>() || valueType.Implements <IDictionary>())
            {
                if (valueType.IsGenericType)
                {
                    m_serializationType = SerializationType.GenericEnumerable;
                }
                else
                {
                    m_serializationType = SerializationType.Enumerable;
                }
            }
            else
            {
                if (m_value is Type)
                {
                    m_serializationType = SerializationType.Type;
                }
                else if (valueType.Implements <Delegate>())
                {
                    m_serializationType = SerializationType.Delegate;
                }
                else if (valueType.Implements <MemberInfo>())
                {
                    m_serializationType = SerializationType.MemberInfo;
                }
                else
                {
                    if (m_value is Vec3 && UnusedMarker.IsUnused((Vec3)m_value))
                    {
                        m_serializationType = SerializationType.UnusedMarker;
                    }
                    else if (m_forbiddenTypes.Contains(valueType))
                    {
                        m_serializationType = SerializationType.Null;
                    }
                    else
                    {
                        m_serializationType = SerializationType.Object;
                    }
                }
            }
        }
Ejemplo n.º 10
0
        void StartWrite(ObjectReference objectReference)
        {
            Type valueType = objectReference.Value != null?objectReference.Value.GetType() : null;

            WriteLine(objectReference.Name);

            if (TryWriteReference(objectReference))
            {
                return;
            }

            if (objectReference.SerializationType == SerializationType.Any)
            {
                if (objectReference.Value is int && UnusedMarker.IsUnused((int)objectReference.Value))
                {
                    objectReference.SerializationType = SerializationType.UnusedMarker;
                }
                else if (objectReference.Value is uint && UnusedMarker.IsUnused((uint)objectReference.Value))
                {
                    objectReference.SerializationType = SerializationType.UnusedMarker;
                }
                else if (objectReference.Value is float && UnusedMarker.IsUnused((float)objectReference.Value))
                {
                    objectReference.SerializationType = SerializationType.UnusedMarker;
                }
            }
            else if (objectReference.SerializationType == SerializationType.Object && objectReference.Value is Vec3 && UnusedMarker.IsUnused((Vec3)objectReference.Value))
            {
                objectReference.SerializationType = SerializationType.UnusedMarker;
            }

            WriteLine((int)objectReference.SerializationType);

            switch (objectReference.SerializationType)
            {
            case SerializationType.Null:
                break;

            case SerializationType.IntPtr:
                WriteIntPtr(objectReference);
                break;

            case SerializationType.Any:
                WriteAny(objectReference);
                break;

            case SerializationType.String:
                WriteString(objectReference);
                break;

            case SerializationType.Enumerable:
                WriteEnumerable(objectReference);
                break;

            case SerializationType.GenericEnumerable:
                WriteGenericEnumerable(objectReference);
                break;

            case SerializationType.Enum:
                WriteEnum(objectReference);
                break;

            case SerializationType.Type:
                WriteType(objectReference);
                break;

            case SerializationType.Delegate:
                WriteDelegate(objectReference);
                break;

            case SerializationType.MemberInfo:
                WriteMemberInfo(objectReference);
                break;

            case SerializationType.Object:
                WriteObject(objectReference);
                break;

            case SerializationType.UnusedMarker:
                WriteUnusedMarker(objectReference);
                break;
            }
        }