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)); }
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)); }