Пример #1
0
        internal override void Write(ResourceWriter writer)
        {
            writer.WriteMatrix4x4(Transform);
            writer.WriteSingle(Field180);
            writer.WriteSingle(Field184);
            writer.WriteSingle(Field188);
            writer.WriteSingle(Field18C);

            if (Version > 0x1104060)
            {
                writer.WriteSingle(Field190);
            }
        }
        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);
                }
            }
        }