internal override void Write(ResourceWriter writer)
        {
            writer.WriteInt32(Flags);
            writer.WriteInt32(Count);

            foreach (var target in this)
            {
                target.Write(writer);
            }
        }
Esempio n. 2
0
        internal override void Write(ResourceWriter writer)
        {
            writer.WriteInt32(Flags);
            writer.WriteInt32(VertexCount);

            foreach (var vertex in Vertices)
            {
                writer.WriteVector3(vertex);
            }
        }
Esempio n. 3
0
        protected override void WriteCore(ResourceWriter writer)
        {
            writer.WriteInt32(TargetCount);

            foreach (int t in TargetInts)
            {
                writer.WriteInt32(t);
            }

            writer.WriteStringWithHash(Version, NodeName);
        }
Esempio n. 4
0
        internal override void Write(ResourceWriter writer)
        {
            writer.WriteInt32(TargetCount);

            foreach (int t in TargetInts)
            {
                writer.WriteInt32(t);
            }

            writer.WriteStringWithHash(Version, MaterialName);
        }
        internal override void Write(ResourceWriter writer)
        {
            writer.WriteInt32(( int )KeyframeType);
            writer.WriteInt32(Keyframes.Count);
            KeyframeTimings.ForEach(writer.WriteSingle);
            Keyframes.ForEach(x => x.Write(writer));

            if (UsesScaleVectors())
            {
                writer.WriteVector3(PositionScale);
                writer.WriteVector3(ScaleScale);
            }
        }
Esempio n. 6
0
 internal override void Write(ResourceWriter writer)
 {
     writer.WriteInt32(Field04);
     writer.WriteInt32(Field08);
     writer.WriteInt16(Field0C);
     writer.WriteSingle(Field10);
     writer.WriteSingle(Field14);
     writer.WriteSingle(Field18);
     writer.WriteInt32(Field1C);
     writer.WriteInt16(Field20);
     writer.WriteSingle(Field24);
     writer.WriteSingle(Field28);
     writer.WriteSingle(Field2C);
     writer.WriteByte(Field00);
 }
 internal override void Write(ResourceWriter writer)
 {
     writer.WriteInt16(( short )TargetKind);
     writer.WriteInt32(TargetId);
     writer.WriteStringWithHash(Version, TargetName, true);
     writer.WriteResourceList(Layers);
 }
Esempio n. 8
0
 protected override void WriteCore(ResourceWriter writer)
 {
     writer.WriteStringWithHash(Version, Name);
     writer.WriteInt32(Field44);
     writer.WriteByte(Field48);
     writer.WriteByte(Field49);
     writer.WriteByte(Field4A);
     writer.WriteByte(Field4B);
     writer.WriteSingle(Field4C);
     writer.WriteSingle(Field50);
     writer.WriteSingle(Field54);
     writer.WriteSingle(Field58);
     writer.WriteSingle(Field5C);
     writer.WriteSingle(Field60);
     writer.WriteSingle(Field64);
     writer.WriteSingle(Field68);
     writer.WriteSingle(Field6C);
     writer.WriteSingle(Field70);
     writer.WriteSingle(Field74);
     writer.WriteSingle(Field78);
     writer.WriteSingle(Field7C);
     writer.WriteSingle(Field80);
     writer.WriteSingle(Field84);
     writer.WriteSingle(Field88);
 }
Esempio n. 9
0
        internal override void Write(ResourceWriter writer)
        {
            if (Version > 0x1104190)
            {
                writer.WriteInt32(( int )Flags);
            }

            writer.WriteInt32(( int )Type);
            writer.WriteVector4(Field30);
            writer.WriteVector4(Field40);
            writer.WriteVector4(Field50);

            switch (Type)
            {
            case LightType.Type1:
                writer.WriteSingle(Field20);
                writer.WriteSingle(Field04);
                writer.WriteSingle(Field08);
                break;

            case LightType.Sky:
                writer.WriteSingle(Field10);
                writer.WriteSingle(Field04);
                writer.WriteSingle(Field08);

                if (Flags.HasFlag(LightFlags.Flag2))
                {
                    writer.WriteSingle(Field6C);
                    writer.WriteSingle(Field70);
                }
                else
                {
                    writer.WriteSingle(Field60);
                    writer.WriteSingle(Field64);
                    writer.WriteSingle(Field68);
                }
                break;

            case LightType.Type3:
                writer.WriteSingle(Field20);
                writer.WriteSingle(Field08);
                writer.WriteSingle(Field04);
                writer.WriteSingle(Field74);
                writer.WriteSingle(Field78);
                goto case LightType.Sky;
            }
        }
Esempio n. 10
0
        protected override void WriteCore(ResourceWriter writer)
        {
            if (Version > 0x1104190)
            {
                writer.WriteInt32(( int )Flags);
            }

            writer.WriteInt32(( int )Type);
            writer.WriteVector4(AmbientColor);
            writer.WriteVector4(DiffuseColor);
            writer.WriteVector4(SpecularColor);

            switch (Type)
            {
            case LightType.Type1:
                writer.WriteSingle(Field20);
                writer.WriteSingle(Field04);
                writer.WriteSingle(Field08);
                break;

            case LightType.Point:
                writer.WriteSingle(Field10);
                writer.WriteSingle(Field04);
                writer.WriteSingle(Field08);

                if (Flags.HasFlag(LightFlags.Bit2))
                {
                    writer.WriteSingle(AttenuationStart);
                    writer.WriteSingle(AttenuationEnd);
                }
                else
                {
                    writer.WriteSingle(Field60);
                    writer.WriteSingle(Field64);
                    writer.WriteSingle(Field68);
                }
                break;

            case LightType.Spot:
                writer.WriteSingle(Field20);
                writer.WriteSingle(Field08);
                writer.WriteSingle(Field04);
                writer.WriteSingle(AngleInnerCone);
                writer.WriteSingle(AngleOuterCone);
                goto case LightType.Point;
            }
        }
Esempio n. 11
0
        protected override void WriteCore(ResourceWriter writer)
        {
            writer.WriteInt32(( int )KeyType);
            writer.WriteInt32(Keys.Count);
            Keys.ForEach(x => writer.WriteSingle(x.Time));
            Keys.ForEach(x => x.Write(writer));

            if (UsesScaleVectors)
            {
                writer.WriteVector3(PositionScale);

                if (!IsCatherineFullBodyData || KeyType != KeyType.Type31)
                {
                    writer.WriteVector3(ScaleScale);
                }
            }
        }
Esempio n. 12
0
 internal override void Write(ResourceWriter writer)
 {
     writer.WriteString(Name);
     writer.WriteInt16(( short )Format);
     writer.WriteInt32(Data.Length);
     writer.WriteBytes(Data);
     writer.WriteByte(Field1C);
     writer.WriteByte(Field1D);
     writer.WriteByte(Field1E);
     writer.WriteByte(Field1F);
 }
Esempio n. 13
0
 internal override void Write(ResourceWriter writer)
 {
     writer.WriteUInt16(( ushort )ShaderType);
     writer.WriteInt32(Data.Length);
     writer.WriteUInt16(Field06);
     writer.WriteUInt32(Field08);
     writer.WriteUInt32(Field0C);
     writer.WriteUInt32(Field10);
     writer.WriteUInt32(Field14);
     writer.WriteUInt32(Field18);
     writer.WriteBytes(Data);
 }
Esempio n. 14
0
        internal override void Write(ResourceWriter writer)
        {
            if (RawData != null)
            {
                writer.Write(RawData);
                return;
            }

            if (Version > 0x1104950)
            {
                writer.WriteInt32(( int )Flags);
            }

            writer.WriteResourceList(Animations);
            writer.WriteResourceList(BlendAnimations);

            if (Flags.HasFlag(AnimationPackFlags.Flag4))
            {
                writer.WriteResource(ExtraData);
            }
        }
Esempio n. 15
0
        protected override void WriteCore(ResourceWriter writer)
        {
            if (RawData != null)
            {
                writer.Write(RawData);
                return;
            }

            if (Version > 0x1104950)
            {
                writer.WriteInt32(( int )Flags);
            }

            writer.WriteResourceList(Animations);
            writer.WriteResourceList(BlendAnimations);

            if (Flags.HasFlag(AnimationPackFlags.Bit2))
            {
                writer.WriteResource(Bit29Data);
            }
        }
Esempio n. 16
0
        public void Save(Stream stream, bool leaveOpen)
        {
            using (var writer = new ResourceWriter(stream, leaveOpen))
            {
                if (ResourceType == ResourceType.AnimationPack)
                {
                    // For AnimationPacks we write a model file header, and then a chunk containing the pack data.
                    writer.WriteFileHeader(ResourceFileIdentifier.Model, Version, ResourceType.ModelPack);
                    writer.WriteResourceChunk(this);
                    return;
                }

                writer.WriteFileHeader(ResourceFileIdentifier.Model, Version, ResourceType);

                switch (ResourceType)
                {
                case ResourceType.Epl:
                    // We have to write this to the file so we can remember it when we load it.
                    //writer.WriteBoolean( ( ( Epl ) this ).IncludesProperties );
                    break;

                case ResourceType.Node:
                    Node.WriteRecursive(writer, ( Node )this);
                    return;

                case ResourceType.ChunkType000100F8:
                {
                    var chunk = ( ChunkType000100F8 )this;
                    writer.WriteInt32(chunk.Data.Length);
                    writer.WriteBytes(chunk.Data);
                    return;
                }
                }

                WriteCore(writer);
            }
        }
        internal override void Write(ResourceWriter writer)
        {
            writer.WriteInt32(Field140);
            writer.WriteSingle(Field13C);
            writer.WriteSingle(Field138);
            writer.WriteSingle(Field134);
            writer.WriteSingle(Field130);

            writer.WriteInt32(Entry1List.Count);
            writer.WriteInt32(Entry2List.Count);
            writer.WriteInt32(Entry3List.Count);

            foreach (var entry in Entry1List)
            {
                writer.WriteSingle(entry.Field34);
                writer.WriteSingle(entry.Field38);

                if (Version > 0x1104120)
                {
                    writer.WriteSingle(entry.Field3C);
                    writer.WriteSingle(entry.Field40);
                }

                if (entry.NodeName != null)
                {
                    writer.WriteBoolean(true);
                    writer.WriteStringWithHash(Version, entry.NodeName);
                }
                else
                {
                    writer.WriteBoolean(false);
                    writer.WriteSingle(entry.Field10);
                    writer.WriteSingle(entry.Field08);
                    writer.WriteSingle(entry.Field04);
                }
            }

            foreach (var entry in Entry2List)
            {
                writer.WriteInt16(entry.Field94);

                if (entry.Field94 == 0)
                {
                    writer.WriteSingle(entry.Field84);
                }
                else if (entry.Field94 == 1)
                {
                    writer.WriteSingle(entry.Field84);
                    writer.WriteSingle(entry.Field88);
                }

                writer.WriteMatrix4x4(entry.Field8C);

                if (entry.NodeName != null)
                {
                    writer.WriteBoolean(true);
                    writer.WriteStringWithHash(Version, entry.NodeName);
                }
                else
                {
                    writer.WriteBoolean(false);
                }
            }

            foreach (var entry in Entry3List)
            {
                writer.WriteSingle(entry.Field00);
                writer.WriteSingle(entry.Field04);

                if (Version <= 0x1104120)
                {
                    writer.WriteInt16(entry.Field0C);
                    writer.WriteInt16(entry.Field0E);
                }
                else
                {
                    writer.WriteSingle(entry.Field08);
                    writer.WriteInt16(entry.Field0C);
                    writer.WriteInt16(entry.Field0E);
                }
            }
        }
Esempio n. 18
0
        protected override void WriteCore(ResourceWriter writer)
        {
            writer.WriteInt32(Count);

            foreach (var property in Values)
            {
                writer.WriteInt32(( int )property.ValueType);
                writer.WriteStringWithHash(Version, property.Name);

                switch (property.ValueType)
                {
                case UserPropertyValueType.Int:
                    writer.WriteInt32(4);
                    writer.WriteInt32(property.GetValue <int>());
                    break;

                case UserPropertyValueType.Float:
                    writer.WriteInt32(4);
                    writer.WriteSingle(property.GetValue <float>());
                    break;

                case UserPropertyValueType.Bool:
                    writer.WriteInt32(1);
                    writer.WriteBoolean(property.GetValue <bool>());
                    break;

                case UserPropertyValueType.String:
                {
                    var value = property.GetValue <string>();
                    writer.WriteInt32(value.Length + 1);
                    writer.WriteStringRaw(value);
                }
                break;

                case UserPropertyValueType.ByteVector3:
                    writer.WriteInt32(3);
                    writer.WriteByteVector3(property.GetValue <ByteVector3>());
                    break;

                case UserPropertyValueType.ByteVector4:
                    writer.WriteInt32(4);
                    writer.WriteByteVector4(property.GetValue <ByteVector4>());
                    break;

                case UserPropertyValueType.Vector3:
                    writer.WriteInt32(12);
                    writer.WriteVector3(property.GetValue <Vector3>());
                    break;

                case UserPropertyValueType.Vector4:
                    writer.WriteInt32(16);
                    writer.WriteVector4(property.GetValue <Vector4>());
                    break;

                case UserPropertyValueType.ByteArray:
                {
                    var value = property.GetValue <byte[]>();
                    writer.WriteInt32(value.Length);
                    writer.WriteBytes(value);
                }
                break;

                default:
                    throw new InvalidOperationException($"Unknown node property type: {property.ValueType}");
                }
            }
        }