예제 #1
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("FailedToDecompile", FailedToDecompile.ToString());
     writer.WriteElementString("Version", GetEntryVersionString());
 }
예제 #2
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);
        }
예제 #3
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());
 }
예제 #4
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (Trainer.Length != 0)
            {
                hash ^= Trainer.GetHashCode();
            }
            if (Monster.Length != 0)
            {
                hash ^= Monster.GetHashCode();
            }
            if (Unk3 != 0)
            {
                hash ^= Unk3.GetHashCode();
            }
            if (Unk4 != 0)
            {
                hash ^= Unk4.GetHashCode();
            }
            if (Unk5 != 0)
            {
                hash ^= Unk5.GetHashCode();
            }
            if (Unk6 != 0)
            {
                hash ^= Unk6.GetHashCode();
            }
            if (Unk7 != 0)
            {
                hash ^= Unk7.GetHashCode();
            }
            if (Number.Length != 0)
            {
                hash ^= Number.GetHashCode();
            }
            if (Empty.Length != 0)
            {
                hash ^= Empty.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
예제 #5
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();
            }
        }