示例#1
0
        public override void Deserialize(CRioArchive arc)
        {
            Version = arc.ReadUInt16();
            if (Version >= 7)
            {
                field_14 = arc.ReadInt32();
                field_18 = arc.ReadInt32();
                arc.ReadByte();
                arc.ReadString();
            }
            arc.ReadString(); // registry branch
            arc.ReadString(); // disk name
            arc.ReadString(); // rio filename [src]
            arc.ReadString();
            arc.ReadString();
            arc.ReadInt64(); // rio offset [=0]
            arc.ReadInt64(); // rio size
            if (Version < 6)
            {
                arc.ReadInt32();
                arc.ReadInt32();
            }
            else
            {
                arc.ReadInt32();
            }
            RioName   = arc.ReadString();
            RioOffset = arc.ReadInt64();
            RioSize   = arc.ReadInt64();
            if (Version < 6)
            {
                arc.ReadInt64();
            }
            arc.ReadInt32();
            arc.ReadString();
            arc.ReadInt32();
            arc.ReadInt32();
            arc.ReadInt32();
            arc.ReadInt32();
            arc.ReadInt32();
            arc.ReadString();
            int count = arc.ReadCount();

            arc.ReadBytes(count * 4);
            PrepareBuffer(); // sub_10011700 (this);
            arc.Read(field_D4, 0, field_D4.Length);
        }
示例#2
0
 public override void Deserialize(CRioArchive arc)
 {
     Version  = arc.ReadInt32();
     field_14 = arc.ReadInt32();
     arc.ReadByte();
     arc.ReadByte();
     if (Version < 10)
     {
         field_1C = 0;
         field_20 = 0;
     }
     else
     {
         field_1C = arc.ReadInt32();
         field_20 = arc.ReadInt32();
     }
     arc.ReadInt32();
     arc.ReadInt32();
     arc.ReadInt32();
     if (Version >= 6)
     {
         TocOffset = arc.ReadInt32();
         TocSize   = arc.ReadInt32();
         arc.ReadInt32();
     }
     if (Version >= 8)
     {
         field_38 = arc.ReadInt32();
     }
     Title = arc.ReadString();
     arc.ReadInt32();
     arc.ReadString();
     arc.ReadInt32();
     arc.ReadString();
     arc.ReadString(); // registry branch
     arc.ReadString();
     arc.ReadInt32();
     arc.ReadString();
     field_80.Deserialize(arc);
     arc.ReadInt32();
     if (Version >= 9)
     {
         RioFileName = arc.ReadString();
     }
     if (Version >= 7)
     {
         arc.ReadString(); // InstallManual
     }
     if (Version >= 5)
     {
         field_98 = arc.ReadInt32();
     }
     ArcList.Deserialize(arc);  // CPtrArray::Serialize
     for (int i = 0; i < ArcList.Count; ++i)
     {
         var entry = ArcList[i];
         if (entry != null)
         {
             entry.field_14 = field_1C;
             entry.field_18 = field_20;
         }
     }
 }