Beispiel #1
0
        public void Deserialize(ushort version, Stream input, Endian endian)
        {
            this.Tag  = input.ReadStringU32(endian);
            this.Unk1 = version >= 3 ? input.ReadValueU8() != 0 : true;
            this.Name = input.ReadStringU32(endian);
            this.Unk3 = version >= 2 ? input.ReadValueU8() != 0 : false;

            if (Name == "/config/ai/battle/eval_shoottarget/shootchain_precombat")
            {
                Console.Write("st");
            }

            // Super hacky solution to unpack XMLs with xml:xsi etc.
            if (this.Unk3 == false)
            {
                long currentPositon = input.Position;

                try
                {
                    this.Content = XmlResource0.Deserialize(input, endian);
                }
                catch (Exception ex)
                {
                    input.Position = currentPositon;
                    Console.WriteLine(ex.Message);
                    bFailedToDecompile = true;
                }
            }
            else
            {
                this.Content = XmlResource1.Deserialize(input, endian);
            }
        }
Beispiel #2
0
        public void Serialize(ushort version, Stream output, Endian endian)
        {
            output.WriteStringU32(this.Tag, endian);

            if (version >= 3)
            {
                output.WriteValueU8((byte)(this.Unk1 ? 1 : 0));
            }

            output.WriteStringU32(this.Name, endian);

            if (version >= 2)
            {
                output.WriteValueU8((byte)(this.Unk3 ? 1 : 0));
            }
            if (this.Unk3 == false)
            {
                XmlResource0.Serialize(output, this.Content, endian);
            }
            else
            {
                //todo
                //XmlResource1.Serialize(output, this.Content, endian);
            }
        }
Beispiel #3
0
        public void Serialize(ushort version, Stream output, Endian endian)
        {
            output.WriteStringU32(this.Tag, endian);

            if (version >= 3)
            {
                output.WriteValueU8((byte)(this.Unk1 ? 1 : 0));
            }

            output.WriteStringU32(this.Name, endian);

            if (version >= 2)
            {
                output.WriteValueU8((byte)(this.Unk3 ? 1 : 0));
            }
            if (this.Unk3 == false)
            {
                if (!bFailedToDecompile)
                {
                    XmlResource0.Serialize(output, this.Content, endian);
                }
                else
                {
                    byte[] data = File.ReadAllBytes(this.Content);
                    output.WriteBytes(data);
                }
            }
            else
            {
                XmlResource1.Serialize(output, this.Content, endian);
            }
        }
Beispiel #4
0
 public void Deserialize(ushort version, Stream input, Endian endian)
 {
     this.Tag  = input.ReadStringU32(endian);
     this.Unk1 = version >= 3 ? input.ReadValueU8() != 0 : true;
     this.Name = input.ReadStringU32(endian);
     this.Unk3 = version >= 2 ? input.ReadValueU8() != 0 : false;
     if (this.Unk3 == false)
     {
         this.Content = XmlResource0.Deserialize(input, endian);
     }
     else
     {
         //todo
         //this.Content = XmlResource1.Deserialize(input, endian);
     }
 }