Esempio n. 1
0
        public void Read(GDFileReader file)
        {
            Block b = new Block();

            if (file.ReadBlockStart(b) != 4)
            {
                throw new Exception();
            }

            var version = file.ReadInt();

            if (version == 6) // version
            {
                stashPages = GDArray <StashPage> .Read(file);
            }
            else if (version == 5)
            {
                stashPages = new List <StashPage>();
                var width  = file.ReadInt();
                var height = file.ReadInt();
                var items  = GDArray <StashItem> .Read(file);

                stashPages.Add(new StashPage()
                {
                    width = width, height = height, items = items
                });
            }
            else
            {
                throw new Exception("Invalid stash version.");
            }

            file.ReadBlockEnd(b);
        }
Esempio n. 2
0
        public void Read(GDFileReader file)
        {
            Block b = new Block();

            if (file.ReadBlockStart(b) != 10)
            {
                throw new Exception();
            }

            if (file.ReadInt() != 2) // version
            {
                throw new Exception();
            }

            for (var i = 0; i < 3; i++)
            {
                tokens[i] = new List <string>();
                UInt32 n = file.ReadInt();

                for (var j = 0; j < n; j++)
                {
                    var token = GDString.Read(file);
                    tokens[i].Add(token);
                }
            }

            file.ReadBlockEnd(b);
        }
Esempio n. 3
0
        public void Read(GDFileReader file)
        {
            Block b = new Block();

            if (file.ReadBlockStart(b) != 12)
            {
                throw new Exception();
            }

            if (file.ReadInt() != 1) // version
            {
                throw new Exception();
            }

            names = new List <string>();
            UInt32 n = file.ReadInt();

            for (var i = 0; i < n; i++)
            {
                var name = GDString.Read(file);
                names.Add(name);
            }

            file.ReadBlockEnd(b);
        }
Esempio n. 4
0
        public void Read(GDFileReader file)
        {
            Block b = new Block();

            if (file.ReadBlockStart(b) != 5)
            {
                throw new Exception();
            }

            if (file.ReadInt() != 1) // version
            {
                throw new Exception();
            }

            for (var i = 0; i < 3; i++)
            {
                uids[i] = GDArray <Uid> .Read(file);
            }

            for (var i = 0; i < 3; i++)
            {
                spawn[i] = new Uid();
                spawn[i].Read(file);
            }

            file.ReadBlockEnd(b);
        }
Esempio n. 5
0
        public void Read(GDFileReader file)
        {
            Block b = new Block();

            if (file.ReadBlockStart(b) != 3)
            {
                throw new Exception();
            }

            if (file.ReadInt() != 4) // version
            {
                throw new Exception();
            }

            if ((flag = file.ReadByte()) != 0)
            {
                UInt32 n = file.ReadInt();
                focused  = file.ReadInt();
                selected = file.ReadInt();

                for (UInt32 i = 0; i < n; i++)
                {
                    var invSack = new InventorySack();
                    invSack.Read(file);
                    Sacks.Add(invSack);
                }

                useAlternate = file.ReadByte();

                for (var i = 0; i < 12; i++)
                {
                    Equipment[i] = new InventoryEquipment();
                    Equipment[i].Read(file);
                }

                alternate1 = file.ReadByte();

                for (var i = 0; i < 2; i++)
                {
                    Weapon1[i] = new InventoryEquipment();
                    Weapon1[i].Read(file);
                }

                alternate2 = file.ReadByte();

                for (var i = 0; i < 2; i++)
                {
                    Weapon2[i] = new InventoryEquipment();
                    Weapon2[i].Read(file);
                }
            }

            file.ReadBlockEnd(b);
        }
Esempio n. 6
0
        public void Read(GDFileReader file)
        {
            Block b = new Block();

            if (file.ReadBlockStart(b) != 1)
            {
                throw new Exception();
            }

            var version = file.ReadInt();

            if (version < 3 || version > 5) // version
            {
                throw new Exception("Invalid character info version");
            }

            isInMainQuest      = file.ReadByte();
            hasBeenInGame      = file.ReadByte();
            difficulty         = file.ReadByte();
            greatestDifficulty = file.ReadByte();
            money = file.ReadInt();
            if (version >= 4)
            {
                greatestSurvivalDifficulty = file.ReadByte();
                currentTribute             = file.ReadInt();
            }

            compassState = file.ReadByte();

            if (version >= 2 && version <= 4)
            {
                lootMode = file.ReadInt();
            }

            skillWindowShowHelp    = file.ReadByte();
            alternateConfig        = file.ReadByte();
            alternateConfigEnabled = file.ReadByte();
            texture = GDString.Read(file);
            if (version >= 5)
            {
                uint size = file.ReadInt(true);

                var lootFilters = new byte[size];
                for (int i = 0; i < lootFilters.Length; i++)
                {
                    lootFilters[i] = file.ReadByte();
                }
            }

            file.ReadBlockEnd(b);
        }
Esempio n. 7
0
        public void Read(GDFileReader file)
        {
            Block b = new Block();

            if (file.ReadBlockStart(b) != 0)
            {
                throw new Exception();
            }

            tempBool = file.ReadByte();
            Items    = GDArray <InventoryItem> .Read(file);

            file.ReadBlockEnd(b);
        }
Esempio n. 8
0
        public override void Read(GDFileReader file)
        {
            Block b = new Block();

            if (file.ReadBlockStart(b) != 0)
            {
                throw new Exception();
            }

            width  = file.ReadInt();
            height = file.ReadInt();
            items  = GDArray <StashItem> .Read(file);

            file.ReadBlockEnd(b);
        }
Esempio n. 9
0
        public void Read(GDFileReader file)
        {
            Block b = new Block();

            if (file.ReadBlockStart(b) != 14)
            {
                throw new Exception();
            }

            var version = file.ReadInt();

            if (version != 5 && version != 4) // version
            {
                throw new Exception("Invalid save file version.");
            }

            unknown1 = file.ReadByte();
            unknown2 = file.ReadInt();
            unknown3 = file.ReadByte();

            for (var i = 0; i < 5; i++)
            {
                unknown4[i] = GDString.Read(file);
                unknown5[i] = GDString.Read(file);
                unknown6[i] = file.ReadByte();
            }

            int numberOfSlots = 46;

            if (version == 4)
            {
                numberOfSlots = 36;
            }
            slots = new HotSlot[numberOfSlots];

            for (var i = 0; i < numberOfSlots; i++)
            {
                slots[i] = new HotSlot();
                slots[i].Read(file);
            }

            cameraDistance = file.ReadFloat();

            file.ReadBlockEnd(b);
        }
Esempio n. 10
0
        public void Read(GDFileReader file)
        {
            Block b = new Block();

            if (file.ReadBlockStart(b) != 13)
            {
                throw new Exception();
            }

            if (file.ReadInt() != 5) // version
            {
                throw new Exception();
            }

            faction  = file.ReadInt();
            factions = GDArray <FactionData> .Read(file);

            file.ReadBlockEnd(b);
        }
Esempio n. 11
0
        public void Read(GDFileReader file)
        {
            Block b = new Block();

            if (file.ReadBlockStart(b) != 8)
            {
                throw new Exception();
            }

            if (file.ReadInt() != 5) // version
            {
                throw new Exception();
            }

            skills = GDArray <Skill> .Read(file);

            masteriesAllowed              = file.ReadInt();
            skillReclamationPointsUsed    = file.ReadInt();
            devotionReclamationPointsUsed = file.ReadInt();
            itemSkills = GDArray <ItemSkill> .Read(file);

            file.ReadBlockEnd(b);
        }
Esempio n. 12
0
        public void Read(GDFileReader file)
        {
            Block b = new Block();

            if (file.ReadBlockStart(b) != 15)
            {
                throw new Exception();
            }

            if (file.ReadInt() != 1) // version
            {
                throw new Exception();
            }


            UInt32 n = file.ReadInt();

            for (var i = 0; i < n; i++)
            {
                pages.Add(file.ReadInt());
            }

            file.ReadBlockEnd(b);
        }
Esempio n. 13
0
        public void Read(GDFileReader file)
        {
            Block b = new Block();

            if (file.ReadBlockStart(b) != 16)
            {
                throw new Exception();
            }

            var version = file.ReadInt();

            if (version < 7 || version > 11) // version
            {
                throw new Exception();
            }

            playTime                = file.ReadInt();
            deaths                  = file.ReadInt();
            kills                   = file.ReadInt();
            experienceFromKills     = file.ReadInt();
            healthPotionsUsed       = file.ReadInt();
            manaPotionsUsed         = file.ReadInt();
            maxLevel                = file.ReadInt();
            hitsReceived            = file.ReadInt();
            hitsInflicted           = file.ReadInt();
            criticalHitsInflicted   = file.ReadInt();
            criticalHitsReceived    = file.ReadInt();
            greatestDamageInflicted = file.ReadFloat();

            for (var i = 0; i < 3; i++)
            {
                greatestMonsterKilledName[i]        = GDString.Read(file);
                greatestMonsterKilledLevel[i]       = file.ReadInt();
                greatestMonsterKilledLifeAndMana[i] = file.ReadInt();
                lastMonsterHit[i]   = GDString.Read(file);
                lastMonsterHitBy[i] = GDString.Read(file);
            }

            championKills             = file.ReadInt();
            lastHit                   = file.ReadFloat();
            lastHitBy                 = file.ReadFloat();
            greatestDamageReceived    = file.ReadFloat();
            heroKills                 = file.ReadInt();
            itemsCrafted              = file.ReadInt();
            relicsCrafted             = file.ReadInt();
            transcendentRelicsCrafted = file.ReadInt();
            mythicalRelicsCrafted     = file.ReadInt();
            shrinesRestored           = file.ReadInt();
            oneShotChestsOpened       = file.ReadInt();
            loreNotesCollected        = file.ReadInt();

            for (var i = 0; i < 3; i++)
            {
                bossKills[i] = file.ReadInt();
            }

            if (version >= 9)
            {
                survivalWaveTier      = file.ReadInt();
                greatestSurvivalScore = file.ReadInt();
                cooldownRemaining     = file.ReadInt();
                cooldownTotal         = file.ReadInt();
            }

            if (version >= 11)
            {
                var skillTrackingMapCount = file.ReadInt();

                for (int i = 0; i < skillTrackingMapCount; i++)
                {
                    var s = GDString.Read(file);
                    var n = file.ReadInt();
                }

                var endlessSouls   = file.ReadInt();
                var endlessEssence = file.ReadInt();
                var difficultySkip = file.ReadByte();
            }

            uniqueItemsFound     = file.ReadInt();
            randomizedItemsFound = file.ReadInt();

            file.ReadBlockEnd(b);
        }