Пример #1
0
        /// <summary>
        /// Unserializes a BinaryStream into the Attributes of this Instance
        /// </summary>
        /// <param name="reader">The Stream that contains the FileData</param>
        protected override void Unserialize(System.IO.BinaryReader reader)
        {
            ArrayList list = new ArrayList();

            id      = reader.ReadBytes(id.Length);
            version = reader.ReadUInt32();
            if (version == (uint)NgbhVersion.Castaway)
            {
                header = new byte[12 + 32];
            }
            header = reader.ReadBytes(header.Length);

            int textlen = reader.ReadInt32();

            zonename = reader.ReadBytes(textlen);
            if (version >= (uint)NgbhVersion.Nightlife)
            {
                zero = reader.ReadBytes(0x14);
            }
            else
            {
                zero = reader.ReadBytes(0x18);
            }

            //read preitems
            for (int i = 0; i < preitems.Length; i++)
            {
                preitems[i].Unserialize(reader);
            }


            int blocklen = reader.ReadInt32();

            slota.Clear();
            for (int i = 0; i < blocklen; i++)
            {
                NgbhSlot item = slota.AddNew(0);
                item.Unserialize(reader);
            }

            blocklen = reader.ReadInt32();
            slotb.Clear();
            for (int i = 0; i < blocklen; i++)
            {
                NgbhSlot item = slotb.AddNew(0);
                item.Unserialize(reader);
            }

            blocklen = reader.ReadInt32();
            slotc.Clear();
            for (int i = 0; i < blocklen; i++)
            {
                NgbhSlot item = slotc.AddNew(0);
                item.Unserialize(reader);
            }

            Changed = false;
        }