private DecorationsSaveSlotInfo ReadSaveSlot(int slotNumber)
        {
            BaseSaveSlotInfo baseSaveSlotInfo = ReaderUntilPlaytimeIncluded(slotNumber);

            // Skip until beginning of struct itemBox
            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
                );

            Skip(
                8 * 200 + // struct items
                8 * 200 + // struct ammo
                8 * 800   // struct matrials
                );

            var decorations = new Dictionary <uint, uint>();

            for (int i = 0; i < 200; i++)
            {
                uint itemId       = reader.ReadUInt32();
                uint itemQuantity = reader.ReadUInt32();

                if (itemId > 0)
                {
                    decorations.Add(itemId, itemQuantity);
                }
            }

            // Read 1000 equipment slots
            for (int i = 0; i < 1000; i++)
            {
                ReadEquipmentSlot(decorations);
            }

            // 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 DecorationsSaveSlotInfo(baseSaveSlotInfo, decorations));
        }
 public DecorationsSaveSlotInfo(
     BaseSaveSlotInfo baseSaveSlotInfo,
     IDictionary <uint, uint> decorations
     )
     : base(baseSaveSlotInfo)
 {
     Decorations = new ReadOnlyDictionary <uint, uint>(decorations);
 }
 public WeaponUsageSaveSlotInfo(
     BaseSaveSlotInfo baseSaveSlotInfo,
     WeaponUsage lowRank, WeaponUsage highRank, WeaponUsage investigations)
     : base(baseSaveSlotInfo)
 {
     LowRank        = lowRank;
     HighRank       = highRank;
     Investigations = investigations;
 }
Exemplo n.º 4
0
 public BaseSaveSlotInfo(BaseSaveSlotInfo copy)
 {
     SaveDataInfo     = copy.SaveDataInfo;
     SlotNumber       = copy.SlotNumber;
     Name             = copy.Name;
     Zeni             = copy.Zeni;
     ResearchPoints   = copy.ResearchPoints;
     ExperiencePoints = copy.ExperiencePoints;
     Rank             = copy.Rank;
     Playtime         = copy.Playtime;
 }
Exemplo n.º 5
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));
        }
Exemplo n.º 6
0
 public EquipmentsSaveSlotInfo(Equipment[] equipments, BaseSaveSlotInfo baseSaveSlotInfo)
     : base(baseSaveSlotInfo)
 {
     Equipments = equipments;
 }
        // Slot 0 Active @ 0x3F3D64
        // Slot 1 Active @ 0x4E9E74
        // Slot 2 Active @ 0x5DFF84

        private WeaponUsageSaveSlotInfo ReadSaveSlot(int slotNumber)
        {
            BaseSaveSlotInfo baseSaveSlotInfo = ReaderUntilPlaytimeIncluded(slotNumber);

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

            // Here is struct GUILDCARD

            Skip(
                167 +                                     // begining of GUILDCARD struct
                Constants.HunterAppearanceStructureSize + // hunterAppearance (H_APPEARANCE)
                Constants.PalicoAppearanceStructureSize + // palicoAppearance (P_APPEARANCE)
                Constants.HunterEquipmentStructureSize +  // hunterEquipment
                92 +                                      // unknown
                Constants.PalicoStructureSize +           // struct palico
                63                                        // remaining of the struct GUILDCARD until weapon usage
                );

            var lowRankWeaponUsage        = WeaponUsage.Read(reader);
            var highRankWeaponUsage       = WeaponUsage.Read(reader);
            var investigationsWeaponUsage = WeaponUsage.Read(reader);

            // Skip the remaining of the GUILDCARD structure
            Skip(
                1 +                                   // poseID
                1 +                                   // expressionID
                1 +                                   // backgroundID
                1 +                                   // stickerID
                256 +                                 // greeting
                256 +                                 // title
                2 +                                   // titleFirst
                2 +                                   // titleMiddle
                2 +                                   // titleLast
                4 +                                   // positionX
                4 +                                   // positionY
                4 +                                   // zoom
                10 * Constants.ArenaStatsStructSize + // arenaRecords
                4 * Constants.Creatures16StructSize + // creatureStats
                Constants.Creatures8StructSize        // researchLevel
                );

            // Skip the remaining of the saveSlot structure
            Skip(
                Constants.GuildCardStructureSize * 100 + // sharedGC
                0x019e36 +                               // unknown
                Constants.ItemLoadoutsStructureSize +    // itemLoadouts
                8 +                                      //  unknown
                Constants.ItemPouchStructureSize +       // itemPouch
                Constants.ItemBoxStructureSize +         // itemBox
                0x034E3C +                               // unknown
                42 * 250 +                               // investigations
                0x0FB9 +                                 // unknown
                Constants.EquipLoadoutsStructureSize +   // equipLoadout
                0x6521 +                                 // unknown
                Constants.DlcTypeSize * 256 +            // DLCClaimed
                0x2A5D                                   // unknown
                );

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

            return(new WeaponUsageSaveSlotInfo(
                       baseSaveSlotInfo,
                       lowRankWeaponUsage,
                       highRankWeaponUsage,
                       investigationsWeaponUsage
                       ));
        }