Ejemplo n.º 1
0
        public override void Write(BinaryWriter file)
        {
            base.Write(file);

            if (Type != null)
            {
                switch (Type.Value)
                {
                case Enums.scnAnimNameType.direct:
                case Enums.scnAnimNameType.dynamic:
                    Unk1.Write(file);
                    break;

                case Enums.scnAnimNameType.reference:
                case Enums.scnAnimNameType.container:
                    Unk2.Write(file);
                    break;

                default:
                    throw new NotImplementedException("scnAnimName.Read");
                }
            }
            else
            {
                Unk1.Write(file);
            }
        }
Ejemplo n.º 2
0
        public void Deserialize(Stream stream)
        {
            using (var r = stream.ToBinaryReader(true))
            {
                Translation = new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle());
                Rotation    = new Quaternion(r.ReadSingle(), r.ReadSingle(), r.ReadSingle(), r.ReadSingle());
                Scale       = new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle());

                uint count = r.ReadUInt32();
                for (int n = 0; n < count; n++)
                {
                    Unk1.Add(Tuple.Create(r.ReadInt32(), new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle())));
                }

                count = r.ReadUInt32();
                for (int n = 0; n < count; n++)
                {
                    Unk2.Add(Tuple.Create(r.ReadInt32(), new Quaternion(r.ReadSingle(), r.ReadSingle(), r.ReadSingle(), r.ReadSingle())));
                }

                count = r.ReadUInt32();
                for (int n = 0; n < count; n++)
                {
                    Unk3.Add(Tuple.Create(r.ReadInt32(), new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle())));
                }
            }
        }
Ejemplo n.º 3
0
        public override void Read(BinaryReader file, uint size)
        {
            var startPos = file.BaseStream.Position;

            base.Read(file, size);
            var bytesRead = file.BaseStream.Position - startPos;

            if (Type != null)
            {
                switch (Type.Value)
                {
                case Enums.scnAnimNameType.direct:
                case Enums.scnAnimNameType.dynamic:
                    var count = (int)(size - bytesRead) / 2;
                    Unk1.Read(file, 2, count);
                    break;

                case Enums.scnAnimNameType.reference:
                case Enums.scnAnimNameType.container:
                    // TODO: what does it reference?
                    Unk2.Read(file, 4);
                    break;

                default:
                    throw new NotImplementedException("scnAnimName.Read");
                }
            }
            else
            {
                Unk1.Read(file, 2, 1);
            }
        }
Ejemplo n.º 4
0
 public override void WriteResourceEntry(XmlWriter writer)
 {
     writer.WriteElementString("File", GetFileName());
     writer.WriteElementString("XMLTag", XMLTag);
     writer.WriteElementString("Unk1", Unk1.ToString());
     writer.WriteElementString("Unk3", Unk3.ToString());
     writer.WriteElementString("Version", GetEntryVersionString());
 }
Ejemplo n.º 5
0
        public override void Open(HSDReader Reader)
        {
            base.Open(Reader);

            if (Unk1 != 0)
            {
                Console.WriteLine("Collision bubble unknown " + Unk1.ToString("X"));
            }
        }
Ejemplo n.º 6
0
        public override void Write(BinaryWriter Writer)
        {
            base.Write(Writer);

            Writer.Write(Unk0);
            Unk1.WriteToFile(Writer);
            Unk2.WriteToFile(Writer);
            Unk3.WriteToFile(Writer);
            Writer.Write(Unk4);
        }
        public override void Read(BinaryReader file, uint size)
        {
            var startpos = file.BaseStream.Position;

            Unk1.Read(file, 4);
            Collisiontypes.Read(file, 0);

            var endpos = file.BaseStream.Position;

            Data.Read(file, (uint)(size - (endpos - startpos)));
        }
Ejemplo n.º 8
0
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = Global.GetHashCode();
         hashCode = (hashCode * 397) ^ Unk1.GetHashCode();
         hashCode = (hashCode * 397) ^ (int)Trigger;
         hashCode = (hashCode * 397) ^ (Node != null ? Node.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ Chain.GetHashCode();
         return(hashCode);
     }
 }
Ejemplo n.º 9
0
 public void WriteXml(StringBuilder sb, int indent)
 {
     CacheDatXml.StringTag(sb, indent, "name", CacheDatXml.HashString(Name));
     CacheDatXml.StringTag(sb, indent, "parent", CacheDatXml.HashString(ParentName));
     CacheDatXml.ValueTag(sb, indent, "contentFlags", ContentFlags.ToString());
     CacheDatXml.SelfClosingTag(sb, indent, "streamingExtentsMin " + FloatUtil.GetVector3XmlString(streamingExtentsMin));
     CacheDatXml.SelfClosingTag(sb, indent, "streamingExtentsMax " + FloatUtil.GetVector3XmlString(streamingExtentsMax));
     CacheDatXml.SelfClosingTag(sb, indent, "entitiesExtentsMin " + FloatUtil.GetVector3XmlString(entitiesExtentsMin));
     CacheDatXml.SelfClosingTag(sb, indent, "entitiesExtentsMax " + FloatUtil.GetVector3XmlString(entitiesExtentsMax));
     CacheDatXml.ValueTag(sb, indent, "unk1", Unk1.ToString());
     CacheDatXml.ValueTag(sb, indent, "unk2", Unk2.ToString());
     CacheDatXml.ValueTag(sb, indent, "unk3", Unk3.ToString());
     CacheDatXml.ValueTag(sb, indent, "unk4", Unk4.ToString());
 }
Ejemplo n.º 10
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (Unk1 != 0UL)
            {
                hash ^= Unk1.GetHashCode();
            }
            if (Unk2 != 0UL)
            {
                hash ^= Unk2.GetHashCode();
            }
            if (Name.Length != 0)
            {
                hash ^= Name.GetHashCode();
            }
            if (Desc.Length != 0)
            {
                hash ^= Desc.GetHashCode();
            }
            if (Icon.Length != 0)
            {
                hash ^= Icon.GetHashCode();
            }
            if (Position.Length != 0)
            {
                hash ^= Position.GetHashCode();
            }
            if (Button.Length != 0)
            {
                hash ^= Button.GetHashCode();
            }
            if (Effect.Length != 0)
            {
                hash ^= Effect.GetHashCode();
            }
            if (Lbdat.Length != 0)
            {
                hash ^= Lbdat.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
 public override void Write(BinaryWriter file)
 {
     Unk1.Write(file);
     Collisiontypes.Write(file);
     Data.Write(file);
 }
Ejemplo n.º 12
0
        public void LoadFile(string targetFile)
        {
            using var reader = new BinaryReader(File.OpenRead(targetFile));

            reader.BaseStream.Seek(6, SeekOrigin.Begin);

            {
                var count = reader.ReadUInt32();
                var arr   = new DateTime[count];
                for (var i = 0; i < count; i++)
                {
                    var timeT = reader.ReadInt64();
                    arr[i] = new DateTime(1970, 1, 1).AddSeconds(timeT);
                }
                times = arr.ToList();
            }

            reader.BaseStream.Seek(1, SeekOrigin.Current);

            {
                var count = reader.ReadUInt32();
                var arr   = new Weapon[count];
                for (var i = 0; i < count; i++)
                {
                    arr[i] = new Weapon {
                        Index          = (ulong)i,
                        unlockTime     = times[reader.ReadByte()],
                        weaponCategory = (WeaponType)reader.ReadByte(),
                        weaponId       = reader.ReadUInt32()
                    };
                }
                weapons = arr.ToList();
            }

            reader.BaseStream.Seek(1, SeekOrigin.Current);

            {
                var count = reader.ReadUInt32();
                var arr   = new Armor[count];
                for (var i = 0; i < count; i++)
                {
                    arr[i] = new Armor {
                        Index      = (ulong)i,
                        unlockTime = times[reader.ReadByte()],
                        armorType  = (ArmorType)reader.ReadByte(),
                        armorId    = reader.ReadUInt32()
                    };
                }
                armors = arr.ToList();
            }

            reader.BaseStream.Seek(1, SeekOrigin.Current);

            {
                var count = reader.ReadUInt32();
                var arr   = new Unk1[count];
                for (var i = 0; i < count; i++)
                {
                    arr[i] = new Unk1 {
                        Index      = (ulong)i,
                        unlockTime = times[reader.ReadByte()],
                        unk1       = reader.ReadUInt32()
                    };
                }
                unk1 = arr.ToList();
            }

            reader.BaseStream.Seek(1, SeekOrigin.Current);

            {
                var count = reader.ReadUInt32();
                var arr   = new Unk2[count];
                for (var i = 0; i < count; i++)
                {
                    arr[i] = new Unk2 {
                        Index      = (ulong)i,
                        unlockTime = times[reader.ReadByte()],
                        unk1       = reader.ReadByte(),
                        unk2       = reader.ReadUInt32()
                    };
                }
                unk2 = arr.ToList();
            }

            reader.BaseStream.Seek(1, SeekOrigin.Current);

            {
                var count = reader.ReadUInt32();
                var arr   = new Pendant[count];
                for (var i = 0; i < count; i++)
                {
                    arr[i] = new Pendant {
                        Index      = (ulong)i,
                        unlockTime = times[reader.ReadByte()],
                        pendantId  = reader.ReadUInt32()
                    };
                }
                pendants = arr.ToList();
            }

            reader.BaseStream.Seek(1, SeekOrigin.Current);

            {
                var count = reader.ReadUInt32();
                var arr   = new ItemTg[count];
                for (var i = 0; i < count; i++)
                {
                    arr[i] = new ItemTg {
                        Index      = (ulong)i,
                        unlockTime = times[reader.ReadByte()],
                        itemId     = reader.ReadUInt32()
                    };
                }
                items = arr.ToList();
            }

            reader.BaseStream.Seek(1, SeekOrigin.Current);

            {
                var count = reader.ReadUInt32();
                var arr   = new Unk3[count];
                for (var i = 0; i < count; i++)
                {
                    arr[i] = new Unk3 {
                        Index      = (ulong)i,
                        unlockTime = times[reader.ReadByte()],
                        unk1       = reader.ReadByte(),
                        unk2       = reader.ReadUInt32()
                    };
                }
                unk3 = arr.ToList();
            }
        }
Ejemplo n.º 13
0
 public override string ToString()
 {
     return(Unk1.ToString() + ", " + Unk6.ToString() + ": " + Samples.ToString() + " samples, " + SamplesPerSecond.ToString() + " samples/sec");
 }