Пример #1
0
        private EquipmentSaveSlotInfo ReadSaveSlot(int slotNumber)
        {
            Skip(4); // unknown

            SaveSlotInfoBase baseSaveSlotInfo = ReadUntilPlaytimeIncluded(slotNumber);

            Skip(
                Constants.HunterAppearanceStructureSize + // H_APPEARANCE
                382 +                                     // unknown
                Constants.PalicoAppearanceStructureSize   // P_APPEARANCE
                );

            Skip(Constants.GuildCardStructureSize * 101); // hunter's one + 100 shared

            Skip(209447);                                 // unkn1

            Skip(142200);                                 // item loadouts

            // Skip item pouch
            Skip(
                24 * 8 + // items
                16 * 8 + // ammo
                256 +    // unknown
                7 * 8    // special
                );

            Skip(
                200 * 8 +  // items
                200 * 8 +  // ammo
                1250 * 8 + // materials
                500 * 8    // decorations
                );

            var equipments = new List <Equipment>();

            // Read 2500 equipment slots
            for (int i = 0; i < 2500; i++)
            {
                var eqp = Equipment.Read(reader);
                if (eqp != null)
                {
                    equipments.Add(eqp);
                }
            }

            // Skip until the end of the struct saveSlot
            Skip(0xa2618);

            if (baseSaveSlotInfo.Playtime == 0)
            {
                return(null);
            }

            return(new EquipmentSaveSlotInfo(equipments.ToArray(), baseSaveSlotInfo));
        }
Пример #2
0
        private EquipmentsSaveSlotInfo ReadSaveSlot(int slotNumber)
        {
            BaseSaveSlotInfo baseSaveSlotInfo = ReaderUntilPlaytimeIncluded(slotNumber);

            // Skip until beginning of struct equipmentSlot
            Skip(
                4 +                                       // unknown
                Constants.HunterAppearanceStructureSize + // H_APPEARANCE
                Constants.PalicoAppearanceStructureSize + // P_APPEARANCE
                Constants.GuildCardStructureSize +        // hunterGC
                Constants.GuildCardStructureSize * 100 +  // sharedGC
                0x019e36 +                                // unknown
                Constants.ItemLoadoutsStructureSize +     // itemLoadouts
                8 +                                       // unknown
                Constants.ItemPouchStructureSize +        // itemPouch
                8 * 200 +                                 // struct items
                8 * 200 +                                 // struct ammo
                8 * 800 +                                 // struct matrials
                8 * 200                                   // struct decorations
                );

            var equipments = new List <Equipment>();

            // Read 1000 equipment slots
            for (int i = 0; i < 1000; i++)
            {
                var eqp = Equipment.Read(reader);
                if (eqp != null)
                {
                    equipments.Add(eqp);
                }
            }

            // Skip until the end of the struct saveSlot
            Skip(
                0x2449C +                              // unknown
                0x2a * 250 +                           // investigations
                0x0FB9 +                               // unknown
                Constants.EquipLoadoutsStructureSize + // equipLoadout
                0x6521 +                               // unknown
                Constants.DlcTypeSize * 256 +          // DLCClaimed
                0x2A5D                                 // unknown
                );

            if (baseSaveSlotInfo.Playtime == 0)
            {
                return(null);
            }

            return(new EquipmentsSaveSlotInfo(equipments.ToArray(), baseSaveSlotInfo));
        }