internal void Read(IBitReader reader)
 {
     this._Unknown1 = reader.ReadUInt16();
     this._Unknown2.Clear();
     this._Unknown3.Clear();
     this._Unknown4.Clear();
     if (this._Unknown1 >= 1)
     {
         var unknown2Count = reader.ReadUInt16();
         for (int i = 0; i < unknown2Count; i++)
         {
             this._Unknown2.Add(reader.ReadUInt32());
         }
         var unknown3Count = reader.ReadUInt16();
         for (int i = 0; i < unknown3Count; i++)
         {
             this._Unknown3.Add(reader.ReadUInt32());
         }
     }
     if (this._Unknown1 >= 2)
     {
         var unknown4Count = reader.ReadUInt16();
         for (int i = 0; i < unknown4Count; i++)
         {
             this._Unknown4.Add(reader.ReadUInt32());
         }
     }
 }
Ejemplo n.º 2
0
        internal void Read(IBitReader reader)
        {
            reader.PushFrameLength(24);
            this._Unknown1 = reader.ReadFloat32();
            this._Unknown2 = reader.ReadUInt32();
            this._Unknown3.Clear();
            var unknown3Count = reader.ReadUInt16();

            for (int i = 0; i < unknown3Count; i++)
            {
                var unknown3 = new EventTrackerUnknown2();
                unknown3.Read(reader);
                this._Unknown3.Add(unknown3);
            }
            this._Unknown4.Clear();
            var unknown4Count = reader.ReadUInt16();

            for (int i = 0; i < unknown4Count; i++)
            {
                var unknown4 = new EventTrackerUnknown2();
                unknown4.Read(reader);
                this._Unknown4.Add(unknown4);
            }
            reader.PopFrameLength();
        }
        internal void Read(IBitReader reader)
        {
            reader.PushFrameLength(24);
            this._Unknown1.Clear();
            var unknown1Count = reader.ReadUInt16();

            for (int i = 0; i < unknown1Count; i++)
            {
                reader.PushFrameLength(24);
                var unknown1Key   = reader.ReadUInt32();
                var unknown1Value = reader.ReadBytes(16);
                reader.PopFrameLength();
                this._Unknown1.Add(new KeyValuePair <uint, byte[]>(unknown1Key, unknown1Value));
            }
            this._Unknown2.Clear();
            var unknown2Count = reader.ReadUInt16();

            for (int i = 0; i < unknown2Count; i++)
            {
                reader.PushFrameLength(24);
                var unknown2Key   = reader.ReadUInt32();
                var unknown2Value = reader.ReadBytes(16);
                reader.PopFrameLength();
                this._Unknown2.Add(new KeyValuePair <uint, byte[]>(unknown2Key, unknown2Value));
            }
            reader.PopFrameLength();
        }
Ejemplo n.º 4
0
        internal override void Read2(IBitReader reader)
        {
            base.Read2(reader);

            this._Unknown1.Clear();
            var unknown1Count = reader.ReadUInt16();

            for (int i = 0; i < unknown1Count; i++)
            {
                var unknown1 = new Data.WorldMapUnknown0();
                unknown1.Read(reader);
                this._Unknown1.Add(unknown1);
            }

            this._Unknown2.Clear();
            if (this.ReadVersion >= 4)
            {
                var unknown2Count = reader.ReadUInt16();
                for (int i = 0; i < unknown2Count; i++)
                {
                    var unknown2 = new Data.WorldMapUnknown2();
                    unknown2.Read(reader);
                    this._Unknown2.Add(unknown2);
                }
            }
        }
Ejemplo n.º 5
0
 public override void Read(IBitReader reader, ushort version)
 {
     this._Unknown5 = reader.ReadUInt16();
     this._Unknown6 = reader.ReadUInt16();
     this._Unknown7 = reader.ReadUInt16();
     this._Unknown8 = version < 8 ? 0 : reader.ReadUInt32();
     base.Read(reader, version);
 }
Ejemplo n.º 6
0
    public static CorpseList Read(IBitReader reader, uint version)
    {
        var corpseList = new CorpseList(
            header: reader.ReadUInt16(),
            count: reader.ReadUInt16()
            );

        for (int i = 0; i < corpseList.Count; i++)
        {
            corpseList.Corpses.Add(Corpse.Read(reader, version));
        }
        return(corpseList);
    }
Ejemplo n.º 7
0
    public static Mercenary Read(IBitReader reader)
    {
        var mercenary = new Mercenary
        {
            IsDead     = reader.ReadUInt16(),
            Id         = reader.ReadUInt32(),
            NameId     = reader.ReadUInt16(),
            TypeId     = reader.ReadUInt16(),
            Experience = reader.ReadUInt32()
        };

        return(mercenary);
    }
Ejemplo n.º 8
0
    public static ItemList Read(IBitReader reader, uint version)
    {
        var itemList = new ItemList(
            header: reader.ReadUInt16(),
            count: reader.ReadUInt16()
            );

        for (int i = 0; i < itemList.Count; i++)
        {
            itemList.Items.Add(Item.Read(reader, version));
        }
        return(itemList);
    }
Ejemplo n.º 9
0
        public byte[] Decode(IBitReader reader)
        {
            ushort num1 = reader != null?reader.ReadUInt16() : throw new ArgumentNullException(nameof(reader));

            byte[] buffer = num1 <= 1020 ? reader.ReadBytes(num1) : throw new InvalidOperationException(string.Format("The packet length must not be larger than 1020 bytes (it is: " + num1 + ")."));
            ushort num2   = reader.ReadUInt16();
            int    num3   = CRC.FMPro3.CalcCrc16(buffer);

            if (num2 != num3)
            {
                throw new InvalidOperationException(string.Format("The CRC check failed expected: 0x{0:X4}, actual 0x{1:X4}", num2, num3));
            }
            return(buffer);
        }
Ejemplo n.º 10
0
 internal void Read(IBitReader reader, uint version)
 {
     this._ActiveSkills.Clear();
     if (version >= 11)
     {
         reader.PushFrameLength(24);
         this._Level                      = reader.ReadInt32();
         this._SkillPointCount            = reader.ReadInt32();
         this._LowestPurchasableSkillCost = reader.ReadInt32();
         this._SkillPointPerLevel         = reader.ReadInt32();
         this._CharacterId                = reader.ReadInt32();
         this._MaximumShields             = reader.ReadInt32();
         this._MaximumHealth              = reader.ReadInt32();
         var activeSkillCount = reader.ReadUInt16();
         for (int i = 0; i < activeSkillCount; i++)
         {
             reader.PushFrameLength(24);
             var activeSkill = new PartyMemberActiveSkill();
             activeSkill.LineHash    = reader.ReadInt32();
             activeSkill.LineRank    = reader.ReadInt32();
             activeSkill.GroupHash   = reader.ReadInt32();
             activeSkill.GroupTypeId = reader.ReadInt32();
             this._ActiveSkills.Add(activeSkill);
             reader.PopFrameLength();
         }
         reader.PopFrameLength();
     }
     else
     {
         reader.PushFrameLength(24);
         throw new NotImplementedException();
         reader.PopFrameLength();
     }
 }
Ejemplo n.º 11
0
    public static WaypointsSection Read(IBitReader reader)
    {
        var waypointsSection = new WaypointsSection
        {
            Header  = reader.ReadUInt16(),
            Version = reader.ReadUInt32(),
            Length  = reader.ReadUInt16()
        };

        for (int i = 0; i < waypointsSection._difficulties.Length; i++)
        {
            waypointsSection._difficulties[i] = WaypointsDifficulty.Read(reader);
        }

        return(waypointsSection);
    }
Ejemplo n.º 12
0
 internal virtual void Read0(IBitReader reader, byte index)
 {
     this._ReadVersion = reader.ReadUInt16();
     if (this._ReadVersion > this._Version)
     {
         throw new SaveFormatException("unsupported version");
     }
 }
Ejemplo n.º 13
0
 private Golem(IBitReader reader, uint version)
 {
     Header = reader.ReadUInt16();
     Exists = reader.ReadByte() == 1;
     if (Exists)
     {
         Item = Item.Read(reader, version);
     }
 }
        internal override void Read4(IBitReader reader)
        {
            base.Read4(reader);
            this._Unknown1 = reader.ReadUInt16();
            reader.PushFrameLength(24);
            var unknown2Count = reader.ReadUInt16();

            this._Unknown2.Clear();
            for (int i = 0; i < unknown2Count; i++)
            {
                reader.PushFrameLength(24);
                var unknown2Key   = reader.ReadUInt32();
                var unknown2Value = reader.ReadUInt32();
                reader.PopFrameLength();
                this._Unknown2.Add(new KeyValuePair <uint, uint>(unknown2Key, unknown2Value));
            }
            reader.PopFrameLength();
        }
Ejemplo n.º 15
0
    public static NPCDialogSection Read(IBitReader reader)
    {
        var npcDialogSection = new NPCDialogSection
        {
            Header = reader.ReadUInt16(),
            Length = reader.ReadUInt16()
        };

        Span <byte> bytes = stackalloc byte[0x30];

        reader.ReadBytes(bytes);
        using var bits = new InternalBitArray(bytes);

        for (int i = 0; i < npcDialogSection._difficulties.Length; i++)
        {
            npcDialogSection._difficulties[i] = NPCDialogDifficulty.Read(bits);
        }

        return(npcDialogSection);
    }
        internal override void Read1(IBitReader reader)
        {
            base.Read1(reader);

            var count = reader.ReadUInt16();

            for (uint i = 0; i < count; i++)
            {
                var unknown0 = reader.ReadUInt32();
            }
        }
        internal void Read(IBitReader reader, ushort version)
        {
            this._Unknown1.Clear();
            this._Unknown2.Clear();
            this._Unknown3.Clear();
            this._Unknown4.Clear();
            if (version >= 1)
            {
                var unknown1Count = reader.ReadUInt16();
                for (int i = 0; i < unknown1Count; i++)
                {
                    var unknown1 = new NotificationsUnknown1();
                    unknown1.Read(reader, version);
                    this._Unknown1.Add(unknown1);
                }

                var unknown2Count = reader.ReadUInt16();
                for (int i = 0; i < unknown2Count; i++)
                {
                    var unknown2 = new NotificationsUnknown2();
                    unknown2.Read(reader, version);
                    this._Unknown2.Add(unknown2);
                }

                var unknown3Count = reader.ReadUInt16();
                for (int i = 0; i < unknown3Count; i++)
                {
                    var unknown3 = new NotificationsUnknown3();
                    unknown3.Read(reader, version);
                    this._Unknown3.Add(unknown3);
                }

                var unknown4Count = reader.ReadUInt16();
                for (int i = 0; i < unknown4Count; i++)
                {
                    var unknown4 = new NotificationsUnknown4();
                    unknown4.Read(reader, version);
                    this._Unknown4.Add(unknown4);
                }
            }
        }
Ejemplo n.º 18
0
        public override void Read(IBitReader reader, ushort version)
        {
            this._Unknown4 = reader.ReadBoolean();

            var modCount = Math.Min(5, (int)reader.ReadUInt16());

            for (int i = 0; i < modCount; i++)
            {
                reader.PushFrameLength(24);
                if (version >= 9)
                {
                    var modId = reader.ReadUInt32();
                    if (modId != 0)
                    {
                        reader.PushFrameLength(24);
                        var modItem = Components.InventoryComponent.ReadItemData(reader, version);
                        reader.PopFrameLength();
                        this._Mods.Add(new KeyValuePair <uint, ItemData>(modId, modItem));
                    }
                }
                else
                {
                    throw new NotSupportedException();
                }
                reader.PopFrameLength();
            }

            var augmentationCount = reader.ReadUInt16();

            for (int i = 0; i < augmentationCount; i++)
            {
                reader.PushFrameLength(24);
                var augmentationItemHash = reader.ReadUInt32();
                this._AugmentationItemHashes.Add(augmentationItemHash);
                reader.PopFrameLength();
            }

            this._CustomName = reader.ReadString();

            base.Read(reader, version);
        }
Ejemplo n.º 19
0
    private WaypointsDifficulty(IBitReader reader)
    {
        Header = reader.ReadUInt16();
        ActI   = ActIWaypoints.Read(reader);
        ActII  = ActIIWaypoints.Read(reader);
        ActIII = ActIIIWaypoints.Read(reader);
        ActIV  = ActIVWaypoints.Read(reader);
        ActV   = ActVWaypoints.Read(reader);

        reader.Align();
        reader.AdvanceBits(17 * 8);
    }
Ejemplo n.º 20
0
        internal void Read(IBitReader reader)
        {
            this._Unknown.Clear();
            var unknownCount = reader.ReadUInt16();

            for (int i = 0; i < unknownCount; i++)
            {
                var unknown = new DestructionUnknown2();
                unknown.Read(reader);
                this._Unknown.Add(unknown);
            }
        }
Ejemplo n.º 21
0
        internal void Read(IBitReader reader)
        {
            this._SkillLines.Clear();
            var skillLineCount = reader.ReadUInt16();

            for (int i = 0; i < skillLineCount; i++)
            {
                var skillLine = new SkillLine();
                skillLine.Read(reader);
                this._SkillLines.Add(skillLine);
            }
        }
Ejemplo n.º 22
0
    public static MercenaryItemList Read(IBitReader reader, Mercenary mercenary, uint version)
    {
        var mercenaryItemList = new MercenaryItemList
        {
            Header = reader.ReadUInt16()
        };

        if (mercenary.Id != 0)
        {
            mercenaryItemList.ItemList = ItemList.Read(reader, version);
        }
        return(mercenaryItemList);
    }
        internal void Read(IBitReader reader)
        {
            reader.PushFrameLength(24);
            this._Unknown = reader.ReadInt32();
            var skillRankCount = reader.ReadUInt16();

            this._SkillRanks.Clear();
            for (int k = 0; k < skillRankCount; k++)
            {
                this._SkillRanks.Add(reader.ReadInt32());
            }
            reader.PopFrameLength();
        }
Ejemplo n.º 24
0
        public void Read(IBitReader reader, int version)
        {
            var unknown1Count = reader.ReadUInt16();

            this._Unknown.Clear();
            for (int i = 0; i < unknown1Count; i++)
            {
                reader.PushFrameLength(24);
                var unknown1Key   = reader.ReadUInt32();
                var unknown1Value = reader.ReadBoolean();
                this._Unknown.Add(new KeyValuePair <uint, bool>(unknown1Key, unknown1Value));
                reader.PopFrameLength();
            }
        }
        internal void Read(IBitReader reader)
        {
            reader.PushFrameLength(24);
            this._ProfileId = reader.ReadInt32();
            var powerCount = reader.ReadUInt16();

            this._Powers.Clear();
            for (int i = 0; i < powerCount; i++)
            {
                var power = new PresetPower();
                power.Read(reader);
                this._Powers.Add(power);
            }
            reader.PopFrameLength();
        }
        internal void Read(IBitReader reader)
        {
            reader.PushFrameLength(24);
            this._Unknown1 = reader.ReadUInt32();
            this._Loot.Clear();
            var lootCount = reader.ReadUInt16();

            for (int i = 0; i < lootCount; i++)
            {
                var lootObject = new LootObject();
                lootObject.Read(reader);
                this._Loot.Add(lootObject);
            }
            reader.PopFrameLength();
        }
Ejemplo n.º 27
0
        internal override void Read2(IBitReader reader)
        {
            base.Read2(reader);
            this._LootContainers.Clear();
            var lootContainerCount = reader.ReadUInt16();

            for (int i = 0; i < lootContainerCount; i++)
            {
                var lootContainer = new Data.LootContainer();
                lootContainer.Read(reader);
                this._LootContainers.Add(lootContainer);
            }
            this._Unknown1.Clear();
            var unknown1Count = reader.ReadUInt16();

            for (int i = 0; i < unknown1Count; i++)
            {
                reader.PushFrameLength(24);
                var unknown1Key   = reader.ReadUInt32();
                var unknown1Value = reader.ReadUInt32();
                reader.PopFrameLength();
                this._Unknown1.Add(new KeyValuePair <uint, uint>(unknown1Key, unknown1Value));
            }
        }
Ejemplo n.º 28
0
    public static Attributes Read(IBitReader reader)
    {
        var itemStatCost = Core.MetaData.ItemStatCostData;
        var attributes   = new Attributes
        {
            Header = reader.ReadUInt16()
        };
        ushort id = reader.ReadUInt16(9);

        while (id != 0x1ff)
        {
            var property  = itemStatCost.GetById(id);
            int attribute = reader.ReadInt32(property?["CSvBits"].ToInt32() ?? 0);
            int valShift  = property?["ValShift"].ToInt32() ?? 0;
            if (valShift > 0)
            {
                attribute >>= valShift;
            }
            attributes.Stats.Add(property?["Stat"].Value ?? string.Empty, attribute);
            id = reader.ReadUInt16(9);
        }
        reader.Align();
        return(attributes);
    }
Ejemplo n.º 29
0
 internal void Read(IBitReader reader)
 {
     this._Unknown1 = reader.ReadUInt32();
     this._Unknown2.Clear();
     if (this._Unknown1 >= 1)
     {
         var unknown2Count = reader.ReadUInt16();
         for (int i = 0; i < unknown2Count; i++)
         {
             var unknown2 = new CodexListUnknown1();
             unknown2.Read(reader);
             this._Unknown2.Add(unknown2);
         }
     }
 }
        public static void ReadStringList(this IBitReader reader, List <string> list)
        {
            if (list == null)
            {
                throw new ArgumentNullException("list");
            }

            list.Clear();
            var count = reader.ReadUInt16();

            for (int i = 0; i < count; i++)
            {
                list.Add(reader.ReadString());
            }
        }