Showing preview only (2,445K chars total). Download the full file or copy to clipboard to get everything.
Repository: Xeeynamo/KingdomSaveEditor
Branch: master
Commit: 37a7a9dde194
Files: 776
Total size: 2.2 MB
Directory structure:
gitextract_6g8e8mkh/
├── .editorconfig
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug-report.md
│ │ ├── feature-request.md
│ │ ├── ff7r-missing-item-name-request.md
│ │ └── ff7r-teleport-coordinates-request.md
│ ├── dependabot.yml
│ └── workflows/
│ ├── format-code.yml
│ └── test.yml
├── .gitignore
├── .gitmodules
├── CNAME
├── KH3SaveEditor.sln
├── KHSave/
│ ├── Attributes/
│ │ ├── AbilityAttribute.cs
│ │ ├── AccessoryAttribute.cs
│ │ ├── ArmorAttribute.cs
│ │ ├── BoostAttribute.cs
│ │ ├── CombatStyleAttribute.cs
│ │ ├── CommandAttribute.cs
│ │ ├── ConsumableAttribute.cs
│ │ ├── FoodAttribute.cs
│ │ ├── FormAttribute.cs
│ │ ├── GummiBlockAttribute.cs
│ │ ├── InfoAttribute.cs
│ │ ├── IngredientAttribute.cs
│ │ ├── KeyItemAttribute.cs
│ │ ├── KeybladeAttribute.cs
│ │ ├── LinkAttribute.cs
│ │ ├── MagicAttribute.cs
│ │ ├── ManuscriptAttribute.cs
│ │ ├── MapAttribute.cs
│ │ ├── MapInfo.cs
│ │ ├── MateriaAttribute.cs
│ │ ├── MogItemAttribute.cs
│ │ ├── MoneyAttribute.cs
│ │ ├── RecipeAttribute.cs
│ │ ├── ReportAttribute.cs
│ │ ├── ShieldAttribute.cs
│ │ ├── SnackAttribute.cs
│ │ ├── StaffAttribute.cs
│ │ ├── SummonAttribute.cs
│ │ ├── SynthesisAttribute.cs
│ │ ├── TentAttribute.cs
│ │ ├── TrackAttribute.cs
│ │ ├── UnusedAttribute.cs
│ │ ├── WeaponAttribute.cs
│ │ └── WorldInfoAttribute.cs
│ ├── Extensions/
│ │ ├── AttributeExtensions.cs
│ │ ├── BitExtensions.cs
│ │ └── DateTimeExtensions.cs
│ ├── KHSave.csproj
│ ├── Services/
│ │ ├── CacheService.cs
│ │ └── TransferServiceLL.cs
│ └── StreamHelpers.cs
├── KHSave.Archives/
│ ├── ArchiveFactories.cs
│ ├── Factories/
│ │ ├── PcKh1Factory.cs
│ │ ├── PcKh2Factory.cs
│ │ ├── PcKhBbsFactory.cs
│ │ ├── PcKhDddFactory.cs
│ │ ├── PcKhRecomFactory.cs
│ │ ├── Ps2CbsFactory.cs
│ │ ├── Ps2PsuFactory.cs
│ │ ├── Ps3PsvFactory.cs
│ │ ├── Ps4Kh1Factory.cs
│ │ ├── Ps4Kh2Factory.cs
│ │ ├── Ps4KhDddFactory.cs
│ │ └── Ps4KhRecomFactory.cs
│ ├── IArchive.cs
│ ├── IArchiveEntry.cs
│ ├── IArchiveFactory.cs
│ ├── KHSave.Archives.csproj
│ ├── PcSaveArchive.cs
│ ├── Ps2CbsArchive.cs
│ ├── Ps2PsuArchive.cs
│ ├── Ps3PsvArchive.cs
│ └── Ps4SaveArchive.cs
├── KHSave.Lib02/
│ ├── KHSave.Lib02.csproj
│ ├── Models/
│ │ ├── Objective.cs
│ │ ├── PlayableCharacter.cs
│ │ └── Slot.cs
│ ├── SaveKh02.cs
│ └── Types/
│ ├── CommandType.cs
│ ├── DifficultyType.cs
│ ├── LocationType.cs
│ ├── MapType.cs
│ └── SpawnType.cs
├── KHSave.Lib1/
│ ├── Attributes/
│ │ ├── ArmorGummiAttribute.cs
│ │ ├── BlueprintGummiAttribute.cs
│ │ ├── CockpitGummiAttribute.cs
│ │ ├── EngineGummiAttribute.cs
│ │ ├── ExtraGummiAttribute.cs
│ │ ├── GummiBlockAttribute.cs
│ │ ├── SpecialGummiAttribute.cs
│ │ ├── WeaponGummiAttribute.cs
│ │ └── WingGummiAttribute.cs
│ ├── Constants.cs
│ ├── ISaveKh1.cs
│ ├── KHSave.Lib1.csproj
│ ├── Models/
│ │ ├── Character.cs
│ │ ├── GummiBlock.cs
│ │ └── Gummiship.cs
│ ├── SaveKh1.EU.cs
│ ├── SaveKh1.FinalMix.cs
│ ├── SaveKh1.cs
│ └── Types/
│ ├── AbilityType.cs
│ ├── CommandType.cs
│ ├── DifficultyType.cs
│ ├── EquipmentType.cs
│ ├── GameTypes.cs
│ ├── GummiBlocksType.cs
│ ├── PlayableCharacterType.cs
│ └── WorldType.cs
├── KHSave.Lib2/
│ ├── Constants.cs
│ ├── ISaveKh2.cs
│ ├── KHSave.Lib2.csproj
│ ├── Models/
│ │ ├── CharacterFinalMix.cs
│ │ ├── CharacterVanilla.cs
│ │ ├── DriveFormFinalMix.cs
│ │ ├── DriveFormVanilla.cs
│ │ ├── ICharacter.cs
│ │ ├── IDriveForm.cs
│ │ ├── IPlaceScript.cs
│ │ ├── PartyMembers.cs
│ │ ├── PlaceScriptFinalMix.cs
│ │ ├── PlaceScriptVanilla.cs
│ │ └── Progress.cs
│ ├── SaveKh2.European.cs
│ ├── SaveKh2.FinalMix.cs
│ ├── SaveKh2.TransferMappings.cs
│ ├── SaveKh2.cs
│ └── Types/
│ ├── AbilityStyleType.cs
│ ├── BattleStyleType.cs
│ ├── CharacterType.cs
│ ├── CommandType.cs
│ ├── DifficultyType.cs
│ ├── DriveFormType.cs
│ ├── EquipmentType.cs
│ ├── GameType.cs
│ ├── InventoryType.cs
│ ├── PlayableCharacterType.cs
│ └── WorldType.cs
├── KHSave.Lib3/
│ ├── ISaveKh3.cs
│ ├── KHSave.Lib3.csproj
│ ├── Models/
│ │ ├── Ability.cs
│ │ ├── AiModel.cs
│ │ ├── EquipmentItem.cs
│ │ ├── FlantasticRecord.cs
│ │ ├── InventoryEntry.cs
│ │ ├── MagicGroup.cs
│ │ ├── PhotoEntry.cs
│ │ ├── PlayableCharacter.cs
│ │ ├── Records.cs
│ │ └── ShortcutGroup.cs
│ ├── Presets/
│ │ ├── Preset.Pawn.cs
│ │ ├── Presets.Map.cs
│ │ └── Presets.Story.cs
│ ├── SaveKh3.cs
│ ├── SaveKh3u109.cs
│ └── Types/
│ ├── AbilityType.cs
│ ├── AccessoryType.cs
│ ├── AiAbilityType.cs
│ ├── AiCombatStyleType.cs
│ ├── AiRecoveryType.cs
│ ├── ArmorType.cs
│ ├── CharacterIconType.cs
│ ├── ChoiceType.cs
│ ├── CommandType.cs
│ ├── ConsumableType.cs
│ ├── DifficultyType.cs
│ ├── FoodType.cs
│ ├── InventoryType.cs
│ ├── ItemType.cs
│ ├── KeyItemType.cs
│ ├── LocationType.cs
│ ├── MaterialType.cs
│ ├── MogType.cs
│ ├── PartyCharacter.cs
│ ├── PlayableCharacterType.cs
│ ├── RecordAttractionType.cs
│ ├── RecordShotlockType.cs
│ ├── SnackType.cs
│ ├── StoryFlagType.cs
│ ├── StoryLabelType.cs
│ ├── SyntesisType.cs
│ ├── TentType.cs
│ ├── WeaponType.cs
│ └── WorldType.cs
├── KHSave.LibBbs/
│ ├── Attributes/
│ │ ├── AbilityAttribute.cs
│ │ ├── ActionAttribute.cs
│ │ ├── CommandAttribute.cs
│ │ └── CommandStyleAttribute.cs
│ ├── Constants.cs
│ ├── ISaveKhBbs.cs
│ ├── KHSave.LibBbs.csproj
│ ├── Models/
│ │ ├── Ability.cs
│ │ ├── Character.cs
│ │ ├── Command.cs
│ │ ├── Deck.cs
│ │ ├── Dlink.cs
│ │ └── Finisher.cs
│ ├── SaveKhBbs.European.cs
│ ├── SaveKhBbs.FinalMix.cs
│ ├── SaveKhBbs.cs
│ └── Types/
│ ├── AbilityType.cs
│ ├── CharacterType.cs
│ ├── CommandType.cs
│ ├── DifficultyType.cs
│ ├── WeaponType.cs
│ └── WorldType.cs
├── KHSave.LibDDD/
│ ├── Attributes/
│ │ ├── CommandAttributes.cs
│ │ ├── DreamPiecesAttribute.cs
│ │ ├── GlossaryAttribute.cs
│ │ ├── MementoEntriesAttribute.cs
│ │ ├── TrainingToysAttribute.cs
│ │ └── TrainingToysFoodAttribute.cs
│ ├── Constants.cs
│ ├── ISaveKhDDD.cs
│ ├── KHSave.LibDDD.csproj
│ ├── Model/
│ │ ├── CommandEntry.cs
│ │ ├── Deck.cs
│ │ ├── DeckPS4.cs
│ │ ├── DreamEater.cs
│ │ └── IDeck.cs
│ ├── SaveKhDDD.3DS.cs
│ ├── SaveKhDDD.PS4.cs
│ ├── SaveKhDDD.cs
│ └── Types/
│ ├── DifficultyType.cs
│ ├── DreamEaterType.cs
│ ├── EquipmentType.cs
│ └── WorldType.cs
├── KHSave.LibFf7Remake/
│ ├── Chunks/
│ │ ├── Chunk.cs
│ │ ├── ChunkChapter.cs
│ │ └── ChunkCommon.cs
│ ├── KHSave.LibFf7Remake.csproj
│ ├── Models/
│ │ ├── ChapterObject.cs
│ │ ├── Character.cs
│ │ ├── CharacterEquipment.cs
│ │ ├── CharacterStats.cs
│ │ ├── Inventory.cs
│ │ ├── Materia.cs
│ │ ├── MateriaEquipment.cs
│ │ ├── UnknownStructure.cs
│ │ ├── UnknownStructure2.cs
│ │ ├── UnknownStructure3.cs
│ │ ├── Vector3f.cs
│ │ └── WeaponFound.cs
│ ├── SaveFf7Remake.cs
│ └── Types/
│ ├── CharacterStatusType.cs
│ ├── CharacterType.cs
│ ├── InventoryType.cs
│ └── ItemCategory.cs
├── KHSave.LibPersona3/
│ ├── KHSave.LibPersona3.csproj
│ ├── Models/
│ │ ├── Character.cs
│ │ ├── Persona.cs
│ │ ├── SocialLinks.cs
│ │ └── SocialLinksPortable.cs
│ ├── Presets.cs
│ ├── SavePersona3.cs
│ └── Types/
│ ├── ArcanaType.cs
│ ├── Characters.cs
│ ├── Demon.cs
│ ├── ExpendableItems.cs
│ ├── Inventory.cs
│ └── Skill.cs
├── KHSave.LibPersona5/
│ ├── KHSave.LibPersona5.csproj
│ ├── Models/
│ │ ├── Character.cs
│ │ └── Persona.cs
│ ├── Persona5Royal.cs
│ ├── Persona5Vanilla.cs
│ ├── Presets.Items.cs
│ ├── Presets.Persona.cs
│ ├── Presets.cs
│ ├── Resources/
│ │ └── Persona5/
│ │ ├── Royal_AccessoryNames.txt
│ │ ├── Royal_ArmorNames.txt
│ │ ├── Royal_ConsumableItemNames.txt
│ │ ├── Royal_Demon.txt
│ │ ├── Royal_KeyItemNames.txt
│ │ ├── Royal_MaterialNames.txt
│ │ ├── Royal_MeleeWeaponNames.txt
│ │ ├── Royal_OutfitNames.txt
│ │ ├── Royal_RangedWeaponNames.txt
│ │ ├── Royal_SkillCardNames.txt
│ │ ├── Royal_SkillNames.txt
│ │ ├── Royal_Traits.txt
│ │ ├── Vanilla_AccessoryNames.txt
│ │ ├── Vanilla_ArmorNames.txt
│ │ ├── Vanilla_ConsumableItemNames.txt
│ │ ├── Vanilla_Demon.txt
│ │ ├── Vanilla_KeyItemNames.txt
│ │ ├── Vanilla_MaterialNames.txt
│ │ ├── Vanilla_MeleeWeaponNames.txt
│ │ ├── Vanilla_OutfitNames.txt
│ │ ├── Vanilla_RangedWeaponNames.txt
│ │ ├── Vanilla_SkillCardNames.txt
│ │ └── Vanilla_SkillNames.txt
│ ├── SavePersona5.cs
│ └── Types/
│ ├── ArcanaType.cs
│ ├── Characters.cs
│ ├── Demon.cs
│ ├── Equipment.cs
│ ├── Inventory.cs
│ ├── Skill.cs
│ ├── SkillRoyal.cs
│ └── Trait.cs
├── KHSave.LibRecom/
│ ├── Attributes/
│ │ ├── CardEnemyAttribute.cs
│ │ ├── CardFriendAttribute.cs
│ │ ├── CardItemAttribute.cs
│ │ ├── CardMagicAttribute.cs
│ │ ├── CardMapAttribute.cs
│ │ ├── CardSpecialAttribute.cs
│ │ ├── CardSummonAttribute.cs
│ │ ├── CardWeaponAttribute.cs
│ │ └── CardWorldAttribute.cs
│ ├── DataRecom.cs
│ ├── DataRecomMcWork.cs
│ ├── DataRecomTable0.cs
│ ├── DataRecomTable1.cs
│ ├── DataRecomTable2.cs
│ ├── KHSave.LibRecom.csproj
│ ├── Models/
│ │ ├── Card.cs
│ │ ├── CardFlags.cs
│ │ ├── CardModel.cs
│ │ ├── FriendsFlags.cs
│ │ ├── Kh2CardFlags.cs
│ │ ├── PoohFlags.cs
│ │ ├── SkillFlags.cs
│ │ ├── StoryFlag.cs
│ │ └── TutorialFlags.cs
│ ├── SaveKhRecom.cs
│ └── Types/
│ ├── CardType.cs
│ ├── Difficulty.cs
│ ├── PlayMode.cs
│ └── SoundMode.cs
├── KHSave.SaveEditor/
│ ├── App.config
│ ├── App.manifest
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Interfaces/
│ │ ├── IAlertMessage.cs
│ │ ├── IApplicationStartup.cs
│ │ ├── IFileDialogManager.cs
│ │ ├── IReporter.cs
│ │ ├── IUpdater.cs
│ │ └── IWindowManager.cs
│ ├── KHSave.SaveEditor.csproj
│ ├── Models/
│ │ ├── PatreonInfo.cs
│ │ ├── PatronModel.cs
│ │ ├── ServiceMessage.cs
│ │ └── SponsorshipInfo.cs
│ ├── Properties/
│ │ ├── Resources.Designer.cs
│ │ └── Resources.resx
│ ├── Services/
│ │ ├── AlertMessage.cs
│ │ ├── ContentFactory.cs
│ │ ├── DesktopAppIdentity.cs
│ │ ├── FileDialogManager.cs
│ │ ├── IAppIdentity.cs
│ │ ├── PatreonService.cs
│ │ ├── Pcsx2MemoryService.cs
│ │ ├── ReporterService.cs
│ │ ├── TransferService.cs
│ │ ├── UpdaterService.cs
│ │ └── WindowManager.cs
│ ├── StyledControls.xaml
│ ├── VersionCheck/
│ │ └── DesktopCheckCurrentVersion.cs
│ ├── ViewModels/
│ │ ├── HomeViewModel.cs
│ │ ├── MainWindowViewModel.cs
│ │ └── PatronViewModel.cs
│ ├── Views/
│ │ ├── AttachToPcsx2GameWindow.xaml
│ │ ├── AttachToPcsx2GameWindow.xaml.cs
│ │ ├── AttachToProcessWindow.xaml
│ │ ├── AttachToProcessWindow.xaml.cs
│ │ ├── HomeView.xaml
│ │ ├── HomeView.xaml.cs
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── PatronView.xaml
│ │ ├── PatronView.xaml.cs
│ │ ├── ServiceMessageView.xaml
│ │ ├── ServiceMessageView.xaml.cs
│ │ ├── UpdateWindow.xaml
│ │ └── UpdateWindow.xaml.cs
│ └── packages.config
├── KHSave.SaveEditor.Common/
│ ├── Contracts/
│ │ ├── IGetSave.cs
│ │ ├── IOpenStream.cs
│ │ ├── IRefreshUi.cs
│ │ └── IWriteToStream.cs
│ ├── Controls/
│ │ ├── ItemComboBox.xaml
│ │ ├── ItemComboBox.xaml.cs
│ │ └── TwoEqualColumnsStackPanel.cs
│ ├── Exceptions/
│ │ ├── ImageTooLargeException.cs
│ │ ├── SaveNotSupportedException.cs
│ │ └── VisualException.cs
│ ├── Global.cs
│ ├── KHSave.SaveEditor.Common.csproj
│ ├── Models/
│ │ ├── EnumIconTypeModel.cs
│ │ ├── GenericEntryModel.cs
│ │ ├── GenericEnumListModel.cs
│ │ ├── GenericListModel.cs
│ │ ├── ItemComboBoxModel.cs
│ │ └── KhEnumListModel.cs
│ ├── ProcessStream.cs
│ ├── Services/
│ │ ├── ArchiveWriteToStream.cs
│ │ ├── GenericEqualityComparer.cs
│ │ ├── IconService.cs
│ │ └── SearchEngine.cs
│ ├── ViewModels/
│ │ ├── ArchiveEntryViewModel.cs
│ │ └── ArchiveManagerViewModel.cs
│ └── Views/
│ ├── ArchiveManagerView.xaml
│ └── ArchiveManagerView.xaml.cs
├── KHSave.SaveEditor.Ff7Remake/
│ ├── Data/
│ │ ├── BgmPreset.cs
│ │ ├── ItemsPreset.cs
│ │ └── LocationsPreset.cs
│ ├── KHSave.SaveEditor.Ff7Remake.csproj
│ ├── KHSave.SaveEditor.Ff7Remake_x53vqark_wpftmp.csproj
│ ├── Models/
│ │ ├── BgmModel.cs
│ │ ├── ChapterCharacterEntryModel.cs
│ │ ├── ChapterEntryModel.cs
│ │ ├── ChapterObjectEntry.cs
│ │ ├── CharacterEntryModel.cs
│ │ ├── ChunkEntryModel.cs
│ │ ├── EquipmentEntryModel.cs
│ │ ├── InventroyEntryModel.cs
│ │ ├── ItemModel.cs
│ │ └── MateriaEntryModel.cs
│ ├── ViewModels/
│ │ ├── ChaptersViewModel.cs
│ │ ├── CharactersViewModel.cs
│ │ ├── DeveloperViewModel.cs
│ │ ├── EquipmentsViewModel.cs
│ │ ├── FF7RMainViewModel.cs
│ │ ├── GlobalViewModel.cs
│ │ ├── InventoryViewModel.cs
│ │ ├── MateriaViewModel.cs
│ │ ├── TeleportViewModel.cs
│ │ ├── Unknown1ViewModel.cs
│ │ ├── Unknown2ViewModel.cs
│ │ └── Unknown3ViewModel.cs
│ └── Views/
│ ├── ChapterEntryView.xaml
│ ├── ChapterEntryView.xaml.cs
│ ├── ChapterMainView.xaml
│ ├── ChapterMainView.xaml.cs
│ ├── ChapterObjectsView.xaml
│ ├── ChapterObjectsView.xaml.cs
│ ├── ChapterPlayableView.xaml
│ ├── ChapterPlayableView.xaml.cs
│ ├── ChaptersView.xaml
│ ├── ChaptersView.xaml.cs
│ ├── CharacterEntryView.xaml
│ ├── CharacterEntryView.xaml.cs
│ ├── CharactersView.xaml
│ ├── CharactersView.xaml.cs
│ ├── DeveloperView.xaml
│ ├── DeveloperView.xaml.cs
│ ├── EquipmentEntryView.xaml
│ ├── EquipmentEntryView.xaml.cs
│ ├── EquipmentsView.xaml
│ ├── EquipmentsView.xaml.cs
│ ├── FF7RMainView.xaml
│ ├── FF7RMainView.xaml.cs
│ ├── GlobalView.xaml
│ ├── GlobalView.xaml.cs
│ ├── InventoryEntryView.xaml
│ ├── InventoryEntryView.xaml.cs
│ ├── InventoryView.xaml
│ ├── InventoryView.xaml.cs
│ ├── MateriaEntryView.xaml
│ ├── MateriaEntryView.xaml.cs
│ ├── MateriaView.xaml
│ ├── MateriaView.xaml.cs
│ ├── PositionView.xaml
│ ├── PositionView.xaml.cs
│ ├── TeleportWindow.xaml
│ ├── TeleportWindow.xaml.cs
│ ├── Unknown1View.xaml
│ ├── Unknown1View.xaml.cs
│ ├── Unknown2View.xaml
│ ├── Unknown2View.xaml.cs
│ ├── Unknown3View.xaml
│ └── Unknown3View.xaml.cs
├── KHSave.SaveEditor.Kh02/
│ ├── KHSave.SaveEditor.Kh02.csproj
│ ├── MainView.xaml
│ ├── MainView.xaml.cs
│ ├── Models/
│ │ └── SlotListModel.cs
│ ├── ViewModels/
│ │ ├── GlobalSystemViewModel.cs
│ │ ├── Kh02ViewModel.cs
│ │ └── SlotViewModel.cs
│ └── Views/
│ ├── SystemView.xaml
│ └── SystemView.xaml.cs
├── KHSave.SaveEditor.Kh1/
│ ├── Interfaces/
│ │ └── IGetAbilities.cs
│ ├── KHSave.SaveEditor.Kh1.csproj
│ ├── MainView.xaml
│ ├── MainView.xaml.cs
│ ├── Models/
│ │ └── InventoryItemModel.cs
│ ├── Service/
│ │ ├── EquipmentManagerFactory.cs
│ │ └── IEquipmentManager.cs
│ ├── ViewModels/
│ │ ├── AbilityViewModel.cs
│ │ ├── EquipmentItemsViewModel.cs
│ │ ├── InventoryViewModel.cs
│ │ ├── Kh1ViewModel.cs
│ │ ├── PlayerViewModel.cs
│ │ ├── PlayersViewModel.cs
│ │ └── SystemViewModel.cs
│ └── Views/
│ ├── AbilityView.xaml
│ ├── AbilityView.xaml.cs
│ ├── InventoryView.xaml
│ ├── InventoryView.xaml.cs
│ ├── PlayerEquipmentView.xaml
│ ├── PlayerEquipmentView.xaml.cs
│ ├── PlayerView.xaml
│ ├── PlayerView.xaml.cs
│ ├── PlayersView.xaml
│ ├── PlayersView.xaml.cs
│ ├── SystemView.xaml
│ └── SystemView.xaml.cs
├── KHSave.SaveEditor.Kh2/
│ ├── Data/
│ │ └── Rooms.cs
│ ├── Interfaces/
│ │ └── IResourceGetter.cs
│ ├── KHSave.SaveEditor.Kh2.csproj
│ ├── MainView.xaml
│ ├── MainView.xaml.cs
│ ├── Models/
│ │ ├── AbilityModel.cs
│ │ ├── InventoryItemModel.cs
│ │ ├── MapScriptModel.cs
│ │ ├── ProgressModel.cs
│ │ └── RoomModel.cs
│ ├── Service/
│ │ ├── EquipmentManagerFactory.cs
│ │ └── IEquipmentManager.cs
│ ├── ViewModels/
│ │ ├── CharacterViewModel.cs
│ │ ├── CharactersViewModel.cs
│ │ ├── DriveFormsViewModel.cs
│ │ ├── EquipmentItemsViewModel.cs
│ │ ├── InventoryViewModel.cs
│ │ ├── Kh2ViewModel.cs
│ │ ├── ProgressViewModel.cs
│ │ ├── RoomViewModel.cs
│ │ ├── RoomVisitedViewModel.cs
│ │ ├── SystemViewModel.cs
│ │ └── WorldsViewModel.cs
│ └── Views/
│ ├── DriveFormView.xaml
│ ├── DriveFormView.xaml.cs
│ ├── DriveFormsView.xaml
│ ├── DriveFormsView.xaml.cs
│ ├── InventoryView.xaml
│ ├── InventoryView.xaml.cs
│ ├── PlayerEquipmentView.xaml
│ ├── PlayerEquipmentView.xaml.cs
│ ├── PlayerView.xaml
│ ├── PlayerView.xaml.cs
│ ├── PlayersView.xaml
│ ├── PlayersView.xaml.cs
│ ├── ProgressView.xaml
│ ├── ProgressView.xaml.cs
│ ├── RoomVisitedView.xaml
│ ├── RoomVisitedView.xaml.cs
│ ├── SystemView.xaml
│ ├── SystemView.xaml.cs
│ ├── WorldView.xaml
│ ├── WorldView.xaml.cs
│ ├── WorldsView.xaml
│ └── WorldsView.xaml.cs
├── KHSave.SaveEditor.Kh3/
│ ├── KHSave.SaveEditor.Kh3.csproj
│ ├── KHSave.SaveEditor.Kh3_kwhjhtac_wpftmp.csproj
│ ├── MainView.xaml
│ ├── MainView.xaml.cs
│ ├── Models/
│ │ ├── AttractionRecordItemModel.cs
│ │ ├── EquipmentItemEntryViewModel.cs
│ │ ├── FlantasticModel.cs
│ │ ├── InventoryItemViewModel.cs
│ │ ├── MapViewModel.cs
│ │ ├── MaterialModel.cs
│ │ ├── RecordAttractionListModel.cs
│ │ ├── RecordShotlockListModel.cs
│ │ ├── ShotlockRecordItemModel.cs
│ │ └── SpawnModel.cs
│ ├── ViewModels/
│ │ ├── AbilitiesViewModel.cs
│ │ ├── EquipmentItemsViewModel.cs
│ │ ├── InventoryViewModel.cs
│ │ ├── Kh3ViewModel.cs
│ │ ├── MaterialsViewModel.cs
│ │ ├── PartyViewModel.cs
│ │ ├── PhotoEntryViewModel.cs
│ │ ├── PhotosViewModel.cs
│ │ ├── PlayerViewModel.cs
│ │ ├── PlayersViewModel.cs
│ │ ├── RecordsViewModel.cs
│ │ ├── ShortcutsViewModel.cs
│ │ ├── StoryViewModel.cs
│ │ └── SystemViewModel.cs
│ └── Views/
│ ├── EquipmentItemEntryView.xaml
│ ├── EquipmentItemEntryView.xaml.cs
│ ├── EquipmentItemsView.xaml
│ ├── EquipmentItemsView.xaml.cs
│ ├── InventoryView.xaml
│ ├── InventoryView.xaml.cs
│ ├── MaterialsView.xaml
│ ├── MaterialsView.xaml.cs
│ ├── PartyView.xaml
│ ├── PartyView.xaml.cs
│ ├── PhotosView.xaml
│ ├── PhotosView.xaml.cs
│ ├── PlayerAbilityView.xaml
│ ├── PlayerAbilityView.xaml.cs
│ ├── PlayerEquipmentView.xaml
│ ├── PlayerEquipmentView.xaml.cs
│ ├── PlayerStatusView.xaml
│ ├── PlayerStatusView.xaml.cs
│ ├── PlayerView.xaml
│ ├── PlayerView.xaml.cs
│ ├── PlayersView.xaml
│ ├── PlayersView.xaml.cs
│ ├── RecordMinigamesView.xaml
│ ├── RecordMinigamesView.xaml.cs
│ ├── RecordsView.xaml
│ ├── RecordsView.xaml.cs
│ ├── ShortcutsView.xaml
│ ├── ShortcutsView.xaml.cs
│ ├── StoryView.xaml
│ ├── StoryView.xaml.cs
│ ├── SystemView.xaml
│ └── SystemView.xaml.cs
├── KHSave.SaveEditor.KhBbs/
│ ├── KHSave.SaveEditor.KhBbs.csproj
│ ├── MainView.xaml
│ ├── MainView.xaml.cs
│ ├── Models/
│ │ └── CommandListModel.cs
│ ├── ViewModels/
│ │ ├── CharacterViewModel.cs
│ │ ├── CommandListViewModel.cs
│ │ ├── CommandViewModel.cs
│ │ ├── DeckViewModel.cs
│ │ ├── DecksViewModel.cs
│ │ ├── KhBbsViewModel.cs
│ │ └── SystemViewModel.cs
│ └── Views/
│ ├── CharacterView.xaml
│ ├── CharacterView.xaml.cs
│ ├── CommandListView.xaml
│ ├── CommandListView.xaml.cs
│ ├── CommandView.xaml
│ ├── CommandView.xaml.cs
│ ├── DeckView.xaml
│ ├── DeckView.xaml.cs
│ ├── DecksView.xaml
│ ├── DecksView.xaml.cs
│ ├── SystemView.xaml
│ └── SystemView.xaml.cs
├── KHSave.SaveEditor.KhDDD/
│ ├── Interfaces/
│ │ └── IResourceGetter.cs
│ ├── KHSave.SaveEditor.KhDDD.csproj
│ ├── MainView.xaml
│ ├── MainView.xaml.cs
│ ├── ViewModels/
│ │ ├── CharacterViewModel.cs
│ │ ├── CommandsViewModel.cs
│ │ ├── DeckViewModel.cs
│ │ ├── DecksViewModel.cs
│ │ ├── DreamEaterViewModel.cs
│ │ ├── DreamEatersViewModel.cs
│ │ ├── KhDDDViewModel.cs
│ │ └── SystemViewModel.cs
│ └── Views/
│ ├── Character.xaml
│ ├── Character.xaml.cs
│ ├── CommandsView.xaml
│ ├── CommandsView.xaml.cs
│ ├── Deck.xaml
│ ├── Deck.xaml.cs
│ ├── Decks.xaml
│ ├── Decks.xaml.cs
│ ├── DreamEater.xaml
│ ├── DreamEater.xaml.cs
│ ├── DreamEaters.xaml
│ ├── DreamEaters.xaml.cs
│ ├── SystemView.xaml
│ └── SystemView.xaml.cs
├── KHSave.SaveEditor.KhRecom/
│ ├── Constants.cs
│ ├── Interfaces/
│ │ └── ICardCountService.cs
│ ├── KHSave.SaveEditor.KhRecom.csproj
│ ├── MainView.xaml
│ ├── MainView.xaml.cs
│ ├── Models/
│ │ └── CardIndex.cs
│ ├── ViewModels/
│ │ ├── CardInventoryEntryViewModel.cs
│ │ ├── CardInventoryViewModel.cs
│ │ ├── KhRecomViewModel.cs
│ │ ├── ProgressViewModel.cs
│ │ ├── SettingsViewModel.cs
│ │ └── SystemViewModel.cs
│ └── Views/
│ ├── CardInventoryEntryView.xaml
│ ├── CardInventoryEntryView.xaml.cs
│ ├── CardInventoryView.xaml
│ ├── CardInventoryView.xaml.cs
│ ├── ProgressView.xaml
│ ├── ProgressView.xaml.cs
│ ├── SettingsView.xaml
│ ├── SettingsView.xaml.cs
│ ├── SystemView.xaml
│ └── SystemView.xaml.cs
├── KHSave.SaveEditor.Persona3/
│ ├── Interfaces/
│ │ ├── IPersonaList.cs
│ │ └── ISkillList.cs
│ ├── KHSave.SaveEditor.Persona3.csproj
│ ├── Models/
│ │ ├── PersonaModel.cs
│ │ └── SkillModel.cs
│ ├── ViewModels/
│ │ ├── CompendiumViewModel.cs
│ │ ├── Persona3MainViewModel.cs
│ │ └── PersonaViewModel.cs
│ └── Views/
│ ├── CompendiumView.xaml
│ ├── CompendiumView.xaml.cs
│ ├── Persona3MainView.xaml
│ ├── Persona3MainView.xaml.cs
│ ├── PersonaView.xaml
│ └── PersonaView.xaml.cs
├── KHSave.SaveEditor.Persona5/
│ ├── Interfaces/
│ │ ├── IConsumableList.cs
│ │ ├── IEquipmentList.cs
│ │ ├── IPersonaList.cs
│ │ └── ISkillList.cs
│ ├── KHSave.SaveEditor.Persona5.csproj
│ ├── Models/
│ │ └── EquipmentModel.cs
│ ├── ViewModels/
│ │ ├── CharacterEntryViewModel.cs
│ │ ├── CharactersViewModel.cs
│ │ ├── CompendiumViewModel.cs
│ │ ├── InventoryViewModel.cs
│ │ ├── Persona5MainViewModel.cs
│ │ ├── PersonaEntryViewModel.cs
│ │ ├── PersonaViewModel.cs
│ │ ├── RoomViewModel.cs
│ │ ├── SkillViewModel.cs
│ │ └── SystemViewModel.cs
│ └── Views/
│ ├── CharacterView.xaml
│ ├── CharacterView.xaml.cs
│ ├── CharactersView.xaml
│ ├── CharactersView.xaml.cs
│ ├── CompendiumView.xaml
│ ├── CompendiumView.xaml.cs
│ ├── InventoryView.xaml
│ ├── InventoryView.xaml.cs
│ ├── Persona5MainView.xaml
│ ├── Persona5MainView.xaml.cs
│ ├── PersonaView.xaml
│ ├── PersonaView.xaml.cs
│ ├── SystemView.xaml
│ └── SystemView.xaml.cs
├── KHSave.Tests/
│ ├── Ff7RemakeTests.cs
│ ├── Helpers.cs
│ ├── KHSave.Tests.csproj
│ ├── Kh1Tests.cs
│ ├── Kh2Tests.cs
│ ├── Kh3Test.cs
│ ├── KhBbsTests.cs
│ ├── KhDDDTests.cs
│ ├── PcArchiveTests.cs
│ ├── Persona3Tests.cs
│ ├── Persona5Tests.cs
│ ├── Ps4SaveArchiveTests.cs
│ ├── RecomTests.cs
│ ├── Saves/
│ │ ├── BASLUS-21569Save2
│ │ ├── BASLUS-21799COM-02
│ │ ├── BISLPM-66676COM-01
│ │ ├── BISLPS-25198-05
│ │ ├── ff7remake000
│ │ ├── ff7remake007
│ │ └── kh02.sav
│ ├── TransferTests.cs
│ └── TrssvTest.cs
├── LICENSE
├── README.md
├── Tooling.MemoryWatcher/
│ ├── Configuration.cs
│ ├── ProcessStream.cs
│ ├── Program.cs
│ ├── Tooling.MemoryWatcher.csproj
│ └── config.yml
├── WindowsStoreSubmission/
│ ├── Package.appxmanifest
│ └── WindowsStoreSubmission.wapproj
├── _config.yml
├── assets/
│ ├── banner.psd
│ ├── banner_new.psd
│ ├── card.psd
│ ├── coin.psd
│ ├── icon-circular.psd
│ └── icon.psd
├── docs/
│ └── decryption.md
├── manifests/
│ └── x/
│ └── Xeeynamo/
│ └── KingdomSaveEditor/
│ └── 1.15.1/
│ └── Xeeynamo.KingdomSaveEditor.yml
└── resources/
├── ff7r-meta-bgm.yml
├── ff7r-meta-items.yml
└── ff7r-meta-locations.yml
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
root = true
[*]
charset = utf-8
insert_final_newline = true
indent_style = space
indent_size = 4
tab_size = 4
[*.cs]
csharp_new_line_before_open_brace = all
csharp_new_line_before_else = true
csharp_new_line_before_catch = true
csharp_new_line_before_finally = true
csharp_new_line_between_query_expression_clauses = true
csharp_indent_case_contents = true
csharp_indent_switch_labels = true
csharp_indent_labels = one_less_than_current
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents_when_block = false
csharp_indent_case_contents_when_block = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_around_binary_operators = before_and_after
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_after_comma = true
csharp_space_before_comma = false
csharp_space_after_dot = false
csharp_space_before_dot = false
csharp_space_after_semicolon_in_for_statement = true
csharp_space_before_semicolon_in_for_statement = false
csharp_space_around_declaration_statements = false
csharp_space_before_open_square_brackets = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_square_brackets = false
csharp_preserve_single_line_statements = false
csharp_preserve_single_line_blocks = true
csharp_using_directive_placement = outside_namespace:silent
csharp_prefer_simple_using_statement = true:suggestion
csharp_prefer_braces = true:silent
csharp_style_namespace_declarations = block_scoped:silent
csharp_style_prefer_method_group_conversion = true:silent
csharp_style_expression_bodied_methods = false:silent
csharp_style_expression_bodied_constructors = false:silent
csharp_style_expression_bodied_operators = false:silent
csharp_style_expression_bodied_properties = true:silent
csharp_style_expression_bodied_indexers = true:silent
csharp_style_expression_bodied_accessors = true:silent
csharp_style_expression_bodied_lambdas = true:silent
csharp_style_expression_bodied_local_functions = false:silent
[*.{cs,vb}]
#### Naming styles ####
# Naming rules
dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
# Symbol specifications
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.interface.required_modifiers =
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.types.required_modifiers =
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.non_field_members.required_modifiers =
# Naming styles
dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix =
dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case
dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case
dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case
dotnet_style_operator_placement_when_wrapping = beginning_of_line
tab_width = 4
================================================
FILE: .gitattributes
================================================
*.sln text merge=union
*.csproj text merge=union
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: [Xeeynamo]
================================================
FILE: .github/ISSUE_TEMPLATE/bug-report.md
================================================
---
name: Bug report
about: Used when a user wants to report a bug
title: GAME NAME - BRIEF EXPLAINATION
labels: enhancement
assignees: Xeeynamo
---
* Game name: -
* Platform: - (eg. PC, PS2, etc.)
Explain which action you were trying to perform before facing the bug and error message.
================================================
FILE: .github/ISSUE_TEMPLATE/feature-request.md
================================================
---
name: Feature request
about: Used when a user wants to request a feature
title: GAME NAME - BRIEF EXPLAINATION
labels: enhancement
assignees: Xeeynamo
---
* Game name: -
* Platform: - (eg. PC, PS2, etc.)
--- insert your feature request description here---
================================================
FILE: .github/ISSUE_TEMPLATE/ff7r-missing-item-name-request.md
================================================
---
name: FF7R Missing item name request
about: Used when a user wants to add a missing item name
title: FF7R Missing item name request
labels: ff7r-item
assignees: Xeeynamo
---
Item name: `eg. Hi-Potion`
PLEAE REMOVE THE FOLLOWING TEXT BEFORE SUBMITTING THE ISSUE:
Before opening this issue, please be 100% sure that the item you are reporting is the correct one.
To prove the item name, you can set a specific amount and see if in-game the value is there, or you set the amount of all your inventory to 0 but this item. The in-game inventory should be empty and the only item is the one you were searching for.
================================================
FILE: .github/ISSUE_TEMPLATE/ff7r-teleport-coordinates-request.md
================================================
---
name: FF7R Teleport coordinates request
about: Used when a user wants to add a specific location with coordinates
title: FF7R Teleport coordinates request
labels: ff7r-location
assignees: Xeeynamo
---
Chapter: `1-18`
Coordinates: `0, 0, 0`
Out of bounds: `yes|no`
Short description: Please describe here
PLEAE REMOVE THE FOLLOWING TEXT BEFORE SUBMITTING THE ISSUE:
Please also attach a screenshot, if possible, of the location you decided to request. You can find the coordinates to paste here on the Teleport window.
================================================
FILE: .github/dependabot.yml
================================================
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "nuget" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "daily"
================================================
FILE: .github/workflows/format-code.yml
================================================
name: Format code
on:
push:
pull_request:
jobs:
format-code:
runs-on: ubuntu-latest
container:
image: mcr.microsoft.com/dotnet/sdk:latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Download formatting tool
run: dotnet tool install -g dotnet-format
- name: Format source code
run: |
export PATH="$PATH:/github/home/.dotnet/tools"
dotnet format
- name: Check if files have been modified
id: git-check
run: echo ::set-output name=modified::$(if git diff-index --quiet HEAD --; then echo "false"; else echo "true"; fi)
- name: Push changes
if: steps.git-check.outputs.modified == 'true'
run: |
git config --global user.name 'Formatting bot'
git config --global user.email 'xeeynamo@users.noreply.github.com'
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
git commit -am "Format code"
git push
================================================
FILE: .github/workflows/test.yml
================================================
name: Tests
on:
push:
branches:
- master
pull_request:
types: [assigned, opened, synchronize, reopened]
jobs:
run-tests:
runs-on: ubuntu-latest
container:
image: mcr.microsoft.com/dotnet/sdk:6.0
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
submodules: recursive
- name: Execute test suite
run: dotnet test KHSave.Tests
================================================
FILE: .gitignore
================================================
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
**/Properties/launchSettings.json
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush
.cr/
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
================================================
FILE: .gitmodules
================================================
[submodule "XeEngine.Tools.Public"]
path = XeEngine.Tools.Public
url = https://github.com/xeeynamo/XeEngine.Tools.Public
[submodule "Xe.ReleaseUpdater"]
path = Xe.ReleaseUpdater
url = https://github.com/Xeeynamo/Xe.ReleaseUpdater.git
================================================
FILE: CNAME
================================================
kingdomsaveeditor.xee.dev
================================================
FILE: KH3SaveEditor.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.32014.148
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.SaveEditor", "KHSave.SaveEditor\KHSave.SaveEditor.csproj", "{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.Tests", "KHSave.Tests\KHSave.Tests.csproj", "{A0A13F70-E37B-4D86-824C-61F3483A2CF8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave", "KHSave\KHSave.csproj", "{66531854-A216-4F15-ABE5-F723EA257BF2}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XeEngine.Tools.Public", "XeEngine.Tools.Public", "{F556CBD8-76F3-45A3-9619-8FB81FA64C22}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xe", "XeEngine.Tools.Public\Xe\Xe.csproj", "{61D2474A-EDC5-4792-A4E6-7E935856617A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xe.Drawing", "XeEngine.Tools.Public\Xe.Drawing\Xe.Drawing.csproj", "{9ECB58D2-3790-4693-8A40-FF2584F263E6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xe.Tools", "XeEngine.Tools.Public\Xe.Tools\Xe.Tools.csproj", "{2F15C257-7E50-42B5-ADB4-7534B88F466B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xe.Tools.Wpf", "XeEngine.Tools.Public\Xe.Tools.Wpf\Xe.Tools.Wpf.csproj", "{F6E4E1DF-ACC6-4DDE-912F-C6465CB3D393}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Documentation", "Documentation", "{ABFEAC30-491D-4FDE-A90C-C8E6107F67D5}"
ProjectSection(SolutionItems) = preProject
README.md = README.md
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Xe.ReleaseUpdater", "Xe.ReleaseUpdater", "{A69D32C8-AA20-4871-858F-31D84193FA1C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xe.VersionCheck", "Xe.ReleaseUpdater\Xe.VersionCheck\Xe.VersionCheck.csproj", "{F37CC0C9-BFE1-4563-87D8-960FE630E601}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xe.Http", "Xe.ReleaseUpdater\Xe.Http\Xe.Http.csproj", "{52E2ACD1-845A-41DC-8318-22A0A7274677}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.Lib02", "KHSave.Lib02\KHSave.Lib02.csproj", "{FE823BD9-B309-49E6-85F1-ADAE55752B72}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.Lib3", "KHSave.Lib3\KHSave.Lib3.csproj", "{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.SaveEditor.Kh3", "KHSave.SaveEditor.Kh3\KHSave.SaveEditor.Kh3.csproj", "{873CD9B2-3984-44DD-A077-B5093714EC56}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.SaveEditor.Common", "KHSave.SaveEditor.Common\KHSave.SaveEditor.Common.csproj", "{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.SaveEditor.Kh02", "KHSave.SaveEditor.Kh02\KHSave.SaveEditor.Kh02.csproj", "{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.Lib2", "KHSave.Lib2\KHSave.Lib2.csproj", "{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.SaveEditor.Kh2", "KHSave.SaveEditor.Kh2\KHSave.SaveEditor.Kh2.csproj", "{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.Archives", "KHSave.Archives\KHSave.Archives.csproj", "{93FD8BB6-B750-4BD3-8143-043286DA1E22}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.LibRecom", "KHSave.LibRecom\KHSave.LibRecom.csproj", "{E277131E-3A87-4087-821A-D1E54D3A4FA9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.SaveEditor.KhRecom", "KHSave.SaveEditor.KhRecom\KHSave.SaveEditor.KhRecom.csproj", "{947C9653-C8D7-4D95-BE62-8101A3C9D824}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.LibFf7Remake", "KHSave.LibFf7Remake\KHSave.LibFf7Remake.csproj", "{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.SaveEditor.Ff7Remake", "KHSave.SaveEditor.Ff7Remake\KHSave.SaveEditor.Ff7Remake.csproj", "{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.SaveEditor.Kh1", "KHSave.SaveEditor.Kh1\KHSave.SaveEditor.Kh1.csproj", "{E168AAE0-7730-45FD-A059-6994DB237C85}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.Lib1", "KHSave.Lib1\KHSave.Lib1.csproj", "{34CAFA86-2B8D-41D0-8218-5FEC87170E45}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.LibBbs", "KHSave.LibBbs\KHSave.LibBbs.csproj", "{1A3285D7-5DC5-4135-9F38-503D6DB6469A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.SaveEditor.KhBbs", "KHSave.SaveEditor.KhBbs\KHSave.SaveEditor.KhBbs.csproj", "{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tooling.MemoryWatcher", "Tooling.MemoryWatcher\Tooling.MemoryWatcher.csproj", "{58B80047-B051-49F8-99E0-2FC3FB34F39A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.LibPersona5", "KHSave.LibPersona5\KHSave.LibPersona5.csproj", "{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.SaveEditor.Persona5", "KHSave.SaveEditor.Persona5\KHSave.SaveEditor.Persona5.csproj", "{55C8BE35-B770-4FFF-92F8-1FD1792150F7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.LibDDD", "KHSave.LibDDD\KHSave.LibDDD.csproj", "{BABA96A7-BEF2-450E-8502-11D36163B691}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.SaveEditor.KhDDD", "KHSave.SaveEditor.KhDDD\KHSave.SaveEditor.KhDDD.csproj", "{F85D2EEC-5C85-4443-B046-769F511ACB6F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{112978EC-90BA-40A5-80D3-6457DD67CB64}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
EndProjectSection
EndProject
Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "WindowsStoreSubmission", "WindowsStoreSubmission\WindowsStoreSubmission.wapproj", "{080A374C-D430-4FCB-96B8-889FDEBF58F2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.LibPersona3", "KHSave.LibPersona3\KHSave.LibPersona3.csproj", "{17C5019E-53C9-4566-BAA0-9E2E139D6529}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KHSave.SaveEditor.Persona3", "KHSave.SaveEditor.Persona3\KHSave.SaveEditor.Persona3.csproj", "{EA92AA97-BC63-4691-8483-39E9643D2086}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|ARM = Debug|ARM
Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|ARM = Release|ARM
Release|ARM64 = Release|ARM64
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Debug|ARM.ActiveCfg = Debug|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Debug|ARM.Build.0 = Debug|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Debug|ARM64.Build.0 = Debug|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Debug|x64.ActiveCfg = Debug|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Debug|x64.Build.0 = Debug|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Debug|x86.ActiveCfg = Debug|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Debug|x86.Build.0 = Debug|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Release|Any CPU.Build.0 = Release|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Release|ARM.ActiveCfg = Release|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Release|ARM.Build.0 = Release|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Release|ARM64.ActiveCfg = Release|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Release|ARM64.Build.0 = Release|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Release|x64.ActiveCfg = Release|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Release|x64.Build.0 = Release|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Release|x86.ActiveCfg = Release|Any CPU
{3F04C476-E496-4B96-959F-5C3B3EC4D4E4}.Release|x86.Build.0 = Release|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Debug|ARM.ActiveCfg = Debug|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Debug|ARM.Build.0 = Debug|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Debug|ARM64.Build.0 = Debug|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Debug|x64.ActiveCfg = Debug|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Debug|x64.Build.0 = Debug|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Debug|x86.ActiveCfg = Debug|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Debug|x86.Build.0 = Debug|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Release|Any CPU.Build.0 = Release|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Release|ARM.ActiveCfg = Release|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Release|ARM.Build.0 = Release|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Release|ARM64.ActiveCfg = Release|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Release|ARM64.Build.0 = Release|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Release|x64.ActiveCfg = Release|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Release|x64.Build.0 = Release|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Release|x86.ActiveCfg = Release|Any CPU
{A0A13F70-E37B-4D86-824C-61F3483A2CF8}.Release|x86.Build.0 = Release|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Debug|ARM.ActiveCfg = Debug|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Debug|ARM.Build.0 = Debug|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Debug|ARM64.Build.0 = Debug|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Debug|x64.ActiveCfg = Debug|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Debug|x64.Build.0 = Debug|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Debug|x86.ActiveCfg = Debug|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Debug|x86.Build.0 = Debug|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Release|Any CPU.Build.0 = Release|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Release|ARM.ActiveCfg = Release|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Release|ARM.Build.0 = Release|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Release|ARM64.ActiveCfg = Release|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Release|ARM64.Build.0 = Release|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Release|x64.ActiveCfg = Release|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Release|x64.Build.0 = Release|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Release|x86.ActiveCfg = Release|Any CPU
{66531854-A216-4F15-ABE5-F723EA257BF2}.Release|x86.Build.0 = Release|Any CPU
{61D2474A-EDC5-4792-A4E6-7E935856617A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{61D2474A-EDC5-4792-A4E6-7E935856617A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{61D2474A-EDC5-4792-A4E6-7E935856617A}.Debug|ARM.ActiveCfg = Debug|Any CPU
{61D2474A-EDC5-4792-A4E6-7E935856617A}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{61D2474A-EDC5-4792-A4E6-7E935856617A}.Debug|x64.ActiveCfg = Debug|Any CPU
{61D2474A-EDC5-4792-A4E6-7E935856617A}.Debug|x86.ActiveCfg = Debug|Any CPU
{61D2474A-EDC5-4792-A4E6-7E935856617A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{61D2474A-EDC5-4792-A4E6-7E935856617A}.Release|Any CPU.Build.0 = Release|Any CPU
{61D2474A-EDC5-4792-A4E6-7E935856617A}.Release|ARM.ActiveCfg = Release|Any CPU
{61D2474A-EDC5-4792-A4E6-7E935856617A}.Release|ARM64.ActiveCfg = Release|Any CPU
{61D2474A-EDC5-4792-A4E6-7E935856617A}.Release|x64.ActiveCfg = Release|Any CPU
{61D2474A-EDC5-4792-A4E6-7E935856617A}.Release|x86.ActiveCfg = Release|Any CPU
{9ECB58D2-3790-4693-8A40-FF2584F263E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9ECB58D2-3790-4693-8A40-FF2584F263E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9ECB58D2-3790-4693-8A40-FF2584F263E6}.Debug|ARM.ActiveCfg = Debug|Any CPU
{9ECB58D2-3790-4693-8A40-FF2584F263E6}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{9ECB58D2-3790-4693-8A40-FF2584F263E6}.Debug|x64.ActiveCfg = Debug|Any CPU
{9ECB58D2-3790-4693-8A40-FF2584F263E6}.Debug|x86.ActiveCfg = Debug|Any CPU
{9ECB58D2-3790-4693-8A40-FF2584F263E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9ECB58D2-3790-4693-8A40-FF2584F263E6}.Release|Any CPU.Build.0 = Release|Any CPU
{9ECB58D2-3790-4693-8A40-FF2584F263E6}.Release|ARM.ActiveCfg = Release|Any CPU
{9ECB58D2-3790-4693-8A40-FF2584F263E6}.Release|ARM64.ActiveCfg = Release|Any CPU
{9ECB58D2-3790-4693-8A40-FF2584F263E6}.Release|x64.ActiveCfg = Release|Any CPU
{9ECB58D2-3790-4693-8A40-FF2584F263E6}.Release|x86.ActiveCfg = Release|Any CPU
{2F15C257-7E50-42B5-ADB4-7534B88F466B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2F15C257-7E50-42B5-ADB4-7534B88F466B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2F15C257-7E50-42B5-ADB4-7534B88F466B}.Debug|ARM.ActiveCfg = Debug|Any CPU
{2F15C257-7E50-42B5-ADB4-7534B88F466B}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{2F15C257-7E50-42B5-ADB4-7534B88F466B}.Debug|x64.ActiveCfg = Debug|Any CPU
{2F15C257-7E50-42B5-ADB4-7534B88F466B}.Debug|x86.ActiveCfg = Debug|Any CPU
{2F15C257-7E50-42B5-ADB4-7534B88F466B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2F15C257-7E50-42B5-ADB4-7534B88F466B}.Release|Any CPU.Build.0 = Release|Any CPU
{2F15C257-7E50-42B5-ADB4-7534B88F466B}.Release|ARM.ActiveCfg = Release|Any CPU
{2F15C257-7E50-42B5-ADB4-7534B88F466B}.Release|ARM64.ActiveCfg = Release|Any CPU
{2F15C257-7E50-42B5-ADB4-7534B88F466B}.Release|x64.ActiveCfg = Release|Any CPU
{2F15C257-7E50-42B5-ADB4-7534B88F466B}.Release|x86.ActiveCfg = Release|Any CPU
{F6E4E1DF-ACC6-4DDE-912F-C6465CB3D393}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F6E4E1DF-ACC6-4DDE-912F-C6465CB3D393}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F6E4E1DF-ACC6-4DDE-912F-C6465CB3D393}.Debug|ARM.ActiveCfg = Debug|Any CPU
{F6E4E1DF-ACC6-4DDE-912F-C6465CB3D393}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{F6E4E1DF-ACC6-4DDE-912F-C6465CB3D393}.Debug|x64.ActiveCfg = Debug|Any CPU
{F6E4E1DF-ACC6-4DDE-912F-C6465CB3D393}.Debug|x86.ActiveCfg = Debug|Any CPU
{F6E4E1DF-ACC6-4DDE-912F-C6465CB3D393}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F6E4E1DF-ACC6-4DDE-912F-C6465CB3D393}.Release|Any CPU.Build.0 = Release|Any CPU
{F6E4E1DF-ACC6-4DDE-912F-C6465CB3D393}.Release|ARM.ActiveCfg = Release|Any CPU
{F6E4E1DF-ACC6-4DDE-912F-C6465CB3D393}.Release|ARM64.ActiveCfg = Release|Any CPU
{F6E4E1DF-ACC6-4DDE-912F-C6465CB3D393}.Release|x64.ActiveCfg = Release|Any CPU
{F6E4E1DF-ACC6-4DDE-912F-C6465CB3D393}.Release|x86.ActiveCfg = Release|Any CPU
{F37CC0C9-BFE1-4563-87D8-960FE630E601}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F37CC0C9-BFE1-4563-87D8-960FE630E601}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F37CC0C9-BFE1-4563-87D8-960FE630E601}.Debug|ARM.ActiveCfg = Debug|Any CPU
{F37CC0C9-BFE1-4563-87D8-960FE630E601}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{F37CC0C9-BFE1-4563-87D8-960FE630E601}.Debug|x64.ActiveCfg = Debug|Any CPU
{F37CC0C9-BFE1-4563-87D8-960FE630E601}.Debug|x86.ActiveCfg = Debug|Any CPU
{F37CC0C9-BFE1-4563-87D8-960FE630E601}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F37CC0C9-BFE1-4563-87D8-960FE630E601}.Release|Any CPU.Build.0 = Release|Any CPU
{F37CC0C9-BFE1-4563-87D8-960FE630E601}.Release|ARM.ActiveCfg = Release|Any CPU
{F37CC0C9-BFE1-4563-87D8-960FE630E601}.Release|ARM64.ActiveCfg = Release|Any CPU
{F37CC0C9-BFE1-4563-87D8-960FE630E601}.Release|x64.ActiveCfg = Release|Any CPU
{F37CC0C9-BFE1-4563-87D8-960FE630E601}.Release|x86.ActiveCfg = Release|Any CPU
{52E2ACD1-845A-41DC-8318-22A0A7274677}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{52E2ACD1-845A-41DC-8318-22A0A7274677}.Debug|Any CPU.Build.0 = Debug|Any CPU
{52E2ACD1-845A-41DC-8318-22A0A7274677}.Debug|ARM.ActiveCfg = Debug|Any CPU
{52E2ACD1-845A-41DC-8318-22A0A7274677}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{52E2ACD1-845A-41DC-8318-22A0A7274677}.Debug|x64.ActiveCfg = Debug|Any CPU
{52E2ACD1-845A-41DC-8318-22A0A7274677}.Debug|x86.ActiveCfg = Debug|Any CPU
{52E2ACD1-845A-41DC-8318-22A0A7274677}.Release|Any CPU.ActiveCfg = Release|Any CPU
{52E2ACD1-845A-41DC-8318-22A0A7274677}.Release|Any CPU.Build.0 = Release|Any CPU
{52E2ACD1-845A-41DC-8318-22A0A7274677}.Release|ARM.ActiveCfg = Release|Any CPU
{52E2ACD1-845A-41DC-8318-22A0A7274677}.Release|ARM64.ActiveCfg = Release|Any CPU
{52E2ACD1-845A-41DC-8318-22A0A7274677}.Release|x64.ActiveCfg = Release|Any CPU
{52E2ACD1-845A-41DC-8318-22A0A7274677}.Release|x86.ActiveCfg = Release|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Debug|ARM.ActiveCfg = Debug|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Debug|ARM.Build.0 = Debug|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Debug|ARM64.Build.0 = Debug|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Debug|x64.ActiveCfg = Debug|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Debug|x64.Build.0 = Debug|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Debug|x86.ActiveCfg = Debug|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Debug|x86.Build.0 = Debug|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Release|Any CPU.Build.0 = Release|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Release|ARM.ActiveCfg = Release|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Release|ARM.Build.0 = Release|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Release|ARM64.ActiveCfg = Release|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Release|ARM64.Build.0 = Release|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Release|x64.ActiveCfg = Release|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Release|x64.Build.0 = Release|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Release|x86.ActiveCfg = Release|Any CPU
{FE823BD9-B309-49E6-85F1-ADAE55752B72}.Release|x86.Build.0 = Release|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Debug|ARM.ActiveCfg = Debug|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Debug|ARM.Build.0 = Debug|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Debug|ARM64.Build.0 = Debug|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Debug|x64.ActiveCfg = Debug|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Debug|x64.Build.0 = Debug|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Debug|x86.ActiveCfg = Debug|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Debug|x86.Build.0 = Debug|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Release|Any CPU.Build.0 = Release|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Release|ARM.ActiveCfg = Release|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Release|ARM.Build.0 = Release|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Release|ARM64.ActiveCfg = Release|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Release|ARM64.Build.0 = Release|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Release|x64.ActiveCfg = Release|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Release|x64.Build.0 = Release|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Release|x86.ActiveCfg = Release|Any CPU
{7BA3EFB5-AF90-434E-9906-B5DAA82B09CA}.Release|x86.Build.0 = Release|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Debug|Any CPU.Build.0 = Debug|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Debug|ARM.ActiveCfg = Debug|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Debug|ARM.Build.0 = Debug|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Debug|ARM64.Build.0 = Debug|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Debug|x64.ActiveCfg = Debug|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Debug|x64.Build.0 = Debug|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Debug|x86.ActiveCfg = Debug|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Debug|x86.Build.0 = Debug|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Release|Any CPU.ActiveCfg = Release|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Release|Any CPU.Build.0 = Release|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Release|ARM.ActiveCfg = Release|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Release|ARM.Build.0 = Release|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Release|ARM64.ActiveCfg = Release|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Release|ARM64.Build.0 = Release|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Release|x64.ActiveCfg = Release|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Release|x64.Build.0 = Release|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Release|x86.ActiveCfg = Release|Any CPU
{873CD9B2-3984-44DD-A077-B5093714EC56}.Release|x86.Build.0 = Release|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Debug|ARM.ActiveCfg = Debug|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Debug|ARM.Build.0 = Debug|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Debug|ARM64.Build.0 = Debug|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Debug|x64.ActiveCfg = Debug|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Debug|x64.Build.0 = Debug|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Debug|x86.ActiveCfg = Debug|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Debug|x86.Build.0 = Debug|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Release|Any CPU.Build.0 = Release|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Release|ARM.ActiveCfg = Release|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Release|ARM.Build.0 = Release|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Release|ARM64.ActiveCfg = Release|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Release|ARM64.Build.0 = Release|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Release|x64.ActiveCfg = Release|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Release|x64.Build.0 = Release|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Release|x86.ActiveCfg = Release|Any CPU
{916C5797-18A6-4191-8FAA-4CA0B89E0BA9}.Release|x86.Build.0 = Release|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Debug|ARM.ActiveCfg = Debug|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Debug|ARM.Build.0 = Debug|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Debug|ARM64.Build.0 = Debug|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Debug|x64.ActiveCfg = Debug|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Debug|x64.Build.0 = Debug|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Debug|x86.ActiveCfg = Debug|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Debug|x86.Build.0 = Debug|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Release|Any CPU.Build.0 = Release|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Release|ARM.ActiveCfg = Release|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Release|ARM.Build.0 = Release|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Release|ARM64.ActiveCfg = Release|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Release|ARM64.Build.0 = Release|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Release|x64.ActiveCfg = Release|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Release|x64.Build.0 = Release|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Release|x86.ActiveCfg = Release|Any CPU
{13EEF3A1-A5EC-443E-B9D2-3F730D5BC52F}.Release|x86.Build.0 = Release|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Debug|ARM.ActiveCfg = Debug|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Debug|ARM.Build.0 = Debug|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Debug|ARM64.Build.0 = Debug|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Debug|x64.ActiveCfg = Debug|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Debug|x64.Build.0 = Debug|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Debug|x86.ActiveCfg = Debug|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Debug|x86.Build.0 = Debug|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Release|Any CPU.Build.0 = Release|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Release|ARM.ActiveCfg = Release|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Release|ARM.Build.0 = Release|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Release|ARM64.ActiveCfg = Release|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Release|ARM64.Build.0 = Release|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Release|x64.ActiveCfg = Release|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Release|x64.Build.0 = Release|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Release|x86.ActiveCfg = Release|Any CPU
{BD00CBCE-D6CB-495D-BE43-0C803E21CEAD}.Release|x86.Build.0 = Release|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Debug|ARM.ActiveCfg = Debug|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Debug|ARM.Build.0 = Debug|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Debug|ARM64.Build.0 = Debug|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Debug|x64.ActiveCfg = Debug|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Debug|x64.Build.0 = Debug|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Debug|x86.ActiveCfg = Debug|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Debug|x86.Build.0 = Debug|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Release|Any CPU.Build.0 = Release|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Release|ARM.ActiveCfg = Release|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Release|ARM.Build.0 = Release|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Release|ARM64.ActiveCfg = Release|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Release|ARM64.Build.0 = Release|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Release|x64.ActiveCfg = Release|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Release|x64.Build.0 = Release|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Release|x86.ActiveCfg = Release|Any CPU
{D2D4FFF5-AFB2-4256-AC4D-2BDC57601A62}.Release|x86.Build.0 = Release|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Debug|Any CPU.Build.0 = Debug|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Debug|ARM.ActiveCfg = Debug|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Debug|ARM.Build.0 = Debug|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Debug|ARM64.Build.0 = Debug|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Debug|x64.ActiveCfg = Debug|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Debug|x64.Build.0 = Debug|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Debug|x86.ActiveCfg = Debug|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Debug|x86.Build.0 = Debug|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Release|Any CPU.ActiveCfg = Release|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Release|Any CPU.Build.0 = Release|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Release|ARM.ActiveCfg = Release|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Release|ARM.Build.0 = Release|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Release|ARM64.ActiveCfg = Release|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Release|ARM64.Build.0 = Release|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Release|x64.ActiveCfg = Release|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Release|x64.Build.0 = Release|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Release|x86.ActiveCfg = Release|Any CPU
{93FD8BB6-B750-4BD3-8143-043286DA1E22}.Release|x86.Build.0 = Release|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Debug|ARM.ActiveCfg = Debug|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Debug|ARM.Build.0 = Debug|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Debug|ARM64.Build.0 = Debug|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Debug|x64.ActiveCfg = Debug|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Debug|x64.Build.0 = Debug|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Debug|x86.ActiveCfg = Debug|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Debug|x86.Build.0 = Debug|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Release|Any CPU.Build.0 = Release|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Release|ARM.ActiveCfg = Release|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Release|ARM.Build.0 = Release|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Release|ARM64.ActiveCfg = Release|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Release|ARM64.Build.0 = Release|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Release|x64.ActiveCfg = Release|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Release|x64.Build.0 = Release|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Release|x86.ActiveCfg = Release|Any CPU
{E277131E-3A87-4087-821A-D1E54D3A4FA9}.Release|x86.Build.0 = Release|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Debug|Any CPU.Build.0 = Debug|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Debug|ARM.ActiveCfg = Debug|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Debug|ARM.Build.0 = Debug|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Debug|ARM64.Build.0 = Debug|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Debug|x64.ActiveCfg = Debug|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Debug|x64.Build.0 = Debug|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Debug|x86.ActiveCfg = Debug|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Debug|x86.Build.0 = Debug|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Release|Any CPU.ActiveCfg = Release|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Release|Any CPU.Build.0 = Release|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Release|ARM.ActiveCfg = Release|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Release|ARM.Build.0 = Release|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Release|ARM64.ActiveCfg = Release|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Release|ARM64.Build.0 = Release|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Release|x64.ActiveCfg = Release|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Release|x64.Build.0 = Release|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Release|x86.ActiveCfg = Release|Any CPU
{947C9653-C8D7-4D95-BE62-8101A3C9D824}.Release|x86.Build.0 = Release|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Debug|ARM.ActiveCfg = Debug|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Debug|ARM.Build.0 = Debug|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Debug|ARM64.Build.0 = Debug|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Debug|x64.ActiveCfg = Debug|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Debug|x64.Build.0 = Debug|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Debug|x86.ActiveCfg = Debug|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Debug|x86.Build.0 = Debug|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Release|Any CPU.Build.0 = Release|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Release|ARM.ActiveCfg = Release|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Release|ARM.Build.0 = Release|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Release|ARM64.ActiveCfg = Release|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Release|ARM64.Build.0 = Release|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Release|x64.ActiveCfg = Release|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Release|x64.Build.0 = Release|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Release|x86.ActiveCfg = Release|Any CPU
{A9686EC4-E5DB-4EE2-8EA3-F15A509A45E1}.Release|x86.Build.0 = Release|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Debug|ARM.ActiveCfg = Debug|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Debug|ARM.Build.0 = Debug|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Debug|ARM64.Build.0 = Debug|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Debug|x64.ActiveCfg = Debug|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Debug|x64.Build.0 = Debug|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Debug|x86.ActiveCfg = Debug|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Debug|x86.Build.0 = Debug|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Release|Any CPU.Build.0 = Release|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Release|ARM.ActiveCfg = Release|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Release|ARM.Build.0 = Release|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Release|ARM64.ActiveCfg = Release|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Release|ARM64.Build.0 = Release|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Release|x64.ActiveCfg = Release|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Release|x64.Build.0 = Release|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Release|x86.ActiveCfg = Release|Any CPU
{8DB1B921-4190-4ED1-B2B0-C1A9B21B2C08}.Release|x86.Build.0 = Release|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Debug|ARM.ActiveCfg = Debug|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Debug|ARM.Build.0 = Debug|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Debug|ARM64.Build.0 = Debug|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Debug|x64.ActiveCfg = Debug|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Debug|x64.Build.0 = Debug|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Debug|x86.ActiveCfg = Debug|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Debug|x86.Build.0 = Debug|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Release|Any CPU.Build.0 = Release|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Release|ARM.ActiveCfg = Release|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Release|ARM.Build.0 = Release|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Release|ARM64.ActiveCfg = Release|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Release|ARM64.Build.0 = Release|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Release|x64.ActiveCfg = Release|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Release|x64.Build.0 = Release|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Release|x86.ActiveCfg = Release|Any CPU
{E168AAE0-7730-45FD-A059-6994DB237C85}.Release|x86.Build.0 = Release|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Debug|Any CPU.Build.0 = Debug|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Debug|ARM.ActiveCfg = Debug|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Debug|ARM.Build.0 = Debug|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Debug|ARM64.Build.0 = Debug|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Debug|x64.ActiveCfg = Debug|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Debug|x64.Build.0 = Debug|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Debug|x86.ActiveCfg = Debug|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Debug|x86.Build.0 = Debug|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Release|Any CPU.ActiveCfg = Release|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Release|Any CPU.Build.0 = Release|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Release|ARM.ActiveCfg = Release|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Release|ARM.Build.0 = Release|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Release|ARM64.ActiveCfg = Release|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Release|ARM64.Build.0 = Release|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Release|x64.ActiveCfg = Release|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Release|x64.Build.0 = Release|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Release|x86.ActiveCfg = Release|Any CPU
{34CAFA86-2B8D-41D0-8218-5FEC87170E45}.Release|x86.Build.0 = Release|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Debug|ARM.ActiveCfg = Debug|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Debug|ARM.Build.0 = Debug|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Debug|ARM64.Build.0 = Debug|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Debug|x64.ActiveCfg = Debug|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Debug|x64.Build.0 = Debug|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Debug|x86.ActiveCfg = Debug|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Debug|x86.Build.0 = Debug|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Release|Any CPU.Build.0 = Release|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Release|ARM.ActiveCfg = Release|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Release|ARM.Build.0 = Release|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Release|ARM64.ActiveCfg = Release|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Release|ARM64.Build.0 = Release|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Release|x64.ActiveCfg = Release|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Release|x64.Build.0 = Release|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Release|x86.ActiveCfg = Release|Any CPU
{1A3285D7-5DC5-4135-9F38-503D6DB6469A}.Release|x86.Build.0 = Release|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Debug|ARM.ActiveCfg = Debug|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Debug|ARM.Build.0 = Debug|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Debug|ARM64.Build.0 = Debug|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Debug|x64.ActiveCfg = Debug|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Debug|x64.Build.0 = Debug|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Debug|x86.ActiveCfg = Debug|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Debug|x86.Build.0 = Debug|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Release|Any CPU.Build.0 = Release|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Release|ARM.ActiveCfg = Release|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Release|ARM.Build.0 = Release|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Release|ARM64.ActiveCfg = Release|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Release|ARM64.Build.0 = Release|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Release|x64.ActiveCfg = Release|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Release|x64.Build.0 = Release|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Release|x86.ActiveCfg = Release|Any CPU
{EDD82FFB-2811-4364-AE3F-FD3EA0C54312}.Release|x86.Build.0 = Release|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Debug|ARM.ActiveCfg = Debug|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Debug|ARM.Build.0 = Debug|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Debug|ARM64.Build.0 = Debug|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Debug|x64.ActiveCfg = Debug|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Debug|x64.Build.0 = Debug|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Debug|x86.ActiveCfg = Debug|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Debug|x86.Build.0 = Debug|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Release|Any CPU.Build.0 = Release|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Release|ARM.ActiveCfg = Release|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Release|ARM.Build.0 = Release|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Release|ARM64.ActiveCfg = Release|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Release|ARM64.Build.0 = Release|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Release|x64.ActiveCfg = Release|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Release|x64.Build.0 = Release|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Release|x86.ActiveCfg = Release|Any CPU
{58B80047-B051-49F8-99E0-2FC3FB34F39A}.Release|x86.Build.0 = Release|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Debug|ARM.ActiveCfg = Debug|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Debug|ARM.Build.0 = Debug|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Debug|ARM64.Build.0 = Debug|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Debug|x64.ActiveCfg = Debug|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Debug|x64.Build.0 = Debug|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Debug|x86.ActiveCfg = Debug|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Debug|x86.Build.0 = Debug|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Release|Any CPU.Build.0 = Release|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Release|ARM.ActiveCfg = Release|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Release|ARM.Build.0 = Release|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Release|ARM64.ActiveCfg = Release|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Release|ARM64.Build.0 = Release|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Release|x64.ActiveCfg = Release|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Release|x64.Build.0 = Release|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Release|x86.ActiveCfg = Release|Any CPU
{BB70AF68-FE47-4A2C-A1A3-BF3A4ED83251}.Release|x86.Build.0 = Release|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Debug|ARM.ActiveCfg = Debug|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Debug|ARM.Build.0 = Debug|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Debug|ARM64.Build.0 = Debug|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Debug|x64.ActiveCfg = Debug|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Debug|x64.Build.0 = Debug|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Debug|x86.ActiveCfg = Debug|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Debug|x86.Build.0 = Debug|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Release|Any CPU.Build.0 = Release|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Release|ARM.ActiveCfg = Release|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Release|ARM.Build.0 = Release|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Release|ARM64.ActiveCfg = Release|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Release|ARM64.Build.0 = Release|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Release|x64.ActiveCfg = Release|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Release|x64.Build.0 = Release|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Release|x86.ActiveCfg = Release|Any CPU
{55C8BE35-B770-4FFF-92F8-1FD1792150F7}.Release|x86.Build.0 = Release|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Debug|ARM.ActiveCfg = Debug|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Debug|ARM.Build.0 = Debug|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Debug|ARM64.Build.0 = Debug|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Debug|x64.ActiveCfg = Debug|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Debug|x64.Build.0 = Debug|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Debug|x86.ActiveCfg = Debug|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Debug|x86.Build.0 = Debug|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Release|Any CPU.Build.0 = Release|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Release|ARM.ActiveCfg = Release|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Release|ARM.Build.0 = Release|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Release|ARM64.ActiveCfg = Release|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Release|ARM64.Build.0 = Release|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Release|x64.ActiveCfg = Release|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Release|x64.Build.0 = Release|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Release|x86.ActiveCfg = Release|Any CPU
{BABA96A7-BEF2-450E-8502-11D36163B691}.Release|x86.Build.0 = Release|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Debug|ARM.ActiveCfg = Debug|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Debug|ARM.Build.0 = Debug|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Debug|ARM64.Build.0 = Debug|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Debug|x64.ActiveCfg = Debug|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Debug|x64.Build.0 = Debug|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Debug|x86.ActiveCfg = Debug|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Debug|x86.Build.0 = Debug|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Release|Any CPU.Build.0 = Release|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Release|ARM.ActiveCfg = Release|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Release|ARM.Build.0 = Release|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Release|ARM64.ActiveCfg = Release|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Release|ARM64.Build.0 = Release|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Release|x64.ActiveCfg = Release|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Release|x64.Build.0 = Release|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Release|x86.ActiveCfg = Release|Any CPU
{F85D2EEC-5C85-4443-B046-769F511ACB6F}.Release|x86.Build.0 = Release|Any CPU
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Debug|ARM.ActiveCfg = Debug|ARM
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Debug|ARM.Build.0 = Debug|ARM
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Debug|ARM.Deploy.0 = Debug|ARM
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Debug|ARM64.ActiveCfg = Debug|ARM64
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Debug|ARM64.Build.0 = Debug|ARM64
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Debug|ARM64.Deploy.0 = Debug|ARM64
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Debug|x64.ActiveCfg = Debug|x64
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Debug|x64.Build.0 = Debug|x64
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Debug|x64.Deploy.0 = Debug|x64
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Debug|x86.ActiveCfg = Debug|x86
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Debug|x86.Build.0 = Debug|x86
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Debug|x86.Deploy.0 = Debug|x86
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Release|Any CPU.Build.0 = Release|Any CPU
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Release|Any CPU.Deploy.0 = Release|Any CPU
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Release|ARM.ActiveCfg = Release|ARM
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Release|ARM.Build.0 = Release|ARM
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Release|ARM.Deploy.0 = Release|ARM
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Release|ARM64.ActiveCfg = Release|ARM64
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Release|ARM64.Build.0 = Release|ARM64
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Release|ARM64.Deploy.0 = Release|ARM64
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Release|x64.ActiveCfg = Release|x64
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Release|x64.Build.0 = Release|x64
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Release|x64.Deploy.0 = Release|x64
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Release|x86.ActiveCfg = Release|x86
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Release|x86.Build.0 = Release|x86
{080A374C-D430-4FCB-96B8-889FDEBF58F2}.Release|x86.Deploy.0 = Release|x86
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Debug|Any CPU.Build.0 = Debug|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Debug|ARM.ActiveCfg = Debug|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Debug|ARM.Build.0 = Debug|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Debug|ARM64.Build.0 = Debug|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Debug|x64.ActiveCfg = Debug|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Debug|x64.Build.0 = Debug|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Debug|x86.ActiveCfg = Debug|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Debug|x86.Build.0 = Debug|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Release|Any CPU.ActiveCfg = Release|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Release|Any CPU.Build.0 = Release|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Release|ARM.ActiveCfg = Release|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Release|ARM.Build.0 = Release|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Release|ARM64.ActiveCfg = Release|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Release|ARM64.Build.0 = Release|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Release|x64.ActiveCfg = Release|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Release|x64.Build.0 = Release|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Release|x86.ActiveCfg = Release|Any CPU
{17C5019E-53C9-4566-BAA0-9E2E139D6529}.Release|x86.Build.0 = Release|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Debug|ARM.ActiveCfg = Debug|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Debug|ARM.Build.0 = Debug|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Debug|ARM64.Build.0 = Debug|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Debug|x64.ActiveCfg = Debug|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Debug|x64.Build.0 = Debug|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Debug|x86.ActiveCfg = Debug|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Debug|x86.Build.0 = Debug|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Release|Any CPU.Build.0 = Release|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Release|ARM.ActiveCfg = Release|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Release|ARM.Build.0 = Release|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Release|ARM64.ActiveCfg = Release|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Release|ARM64.Build.0 = Release|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Release|x64.ActiveCfg = Release|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Release|x64.Build.0 = Release|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Release|x86.ActiveCfg = Release|Any CPU
{EA92AA97-BC63-4691-8483-39E9643D2086}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{61D2474A-EDC5-4792-A4E6-7E935856617A} = {F556CBD8-76F3-45A3-9619-8FB81FA64C22}
{9ECB58D2-3790-4693-8A40-FF2584F263E6} = {F556CBD8-76F3-45A3-9619-8FB81FA64C22}
{2F15C257-7E50-42B5-ADB4-7534B88F466B} = {F556CBD8-76F3-45A3-9619-8FB81FA64C22}
{F6E4E1DF-ACC6-4DDE-912F-C6465CB3D393} = {F556CBD8-76F3-45A3-9619-8FB81FA64C22}
{F37CC0C9-BFE1-4563-87D8-960FE630E601} = {A69D32C8-AA20-4871-858F-31D84193FA1C}
{52E2ACD1-845A-41DC-8318-22A0A7274677} = {A69D32C8-AA20-4871-858F-31D84193FA1C}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {BEB14EB2-578B-40D4-88D1-5B497F2967F4}
EndGlobalSection
EndGlobal
================================================
FILE: KHSave/Attributes/AbilityAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class AbilityAttribute : InfoAttribute
{
public AbilityAttribute(string name = null) :
base(name)
{ }
}
public class AbilityActionAttribute : AbilityAttribute
{
public AbilityActionAttribute(string name = null) :
base(name)
{ }
}
public class AbilityMobilityAttribute : AbilityAttribute
{
public AbilityMobilityAttribute(string name = null) :
base(name)
{ }
}
public class AbilitySupportAttribute : AbilityAttribute
{
public AbilitySupportAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/AccessoryAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class AccessoryAttribute : InfoAttribute
{
public AccessoryAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/ArmorAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class ArmorAttribute : InfoAttribute
{
public ArmorAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/BoostAttribute.cs
================================================
namespace KHSave.Attributes
{
public class BoostAttribute : TentAttribute
{
public BoostAttribute(string name = null) : base(name) { }
}
}
================================================
FILE: KHSave/Attributes/CombatStyleAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class CombatStyleAttribute : InfoAttribute
{
public CombatStyleAttribute(string name) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/CommandAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class CommandAttribute : InfoAttribute
{
public CommandAttribute(string name = null) :
base(name)
{
}
}
}
================================================
FILE: KHSave/Attributes/ConsumableAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class ConsumableAttribute : InfoAttribute
{
public ConsumableAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/FoodAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class FoodAttribute : InfoAttribute
{
public FoodAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/FormAttribute.cs
================================================
namespace KHSave.Attributes
{
public class FormAttribute : KeyItemAttribute
{
public FormAttribute(string name = null) : base(name) { }
}
}
================================================
FILE: KHSave/Attributes/GummiBlockAttribute.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace KHSave.Attributes
{
public class GummiBlockAttribute : InfoAttribute
{
public GummiBlockAttribute(string name = null) : base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/InfoAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using KHSave.Extensions;
using KHSave.Services;
using System;
using System.Collections.Generic;
using System.Linq;
namespace KHSave.Attributes
{
public class InfoAttribute : Attribute
{
private static CacheService<string> cache = new CacheService<string>();
public string Info { get; }
public InfoAttribute()
{ }
public InfoAttribute(string info)
{
Info = info;
}
public static string GetInfo(object value) => cache.Get(value, x =>
value.GetAttribute<InfoAttribute>()?.Info ?? x?.ToString() ?? "<null>");
public static string[] GetItemTypes(object value)
{
var memberValue = value.ToString();
var memberInfo = value.GetType().GetMember(memberValue).FirstOrDefault();
if (memberInfo != null)
{
return memberInfo.CustomAttributes
.Select(x => GetTypeRecursive(x.AttributeType))
.SelectMany(x => x)
.Where(x => x != null)
.Select(x =>
{
var name = x.Name;
var indexAttributeStr = name.IndexOf("Attribute");
return indexAttributeStr > 0 ? name.Substring(0, indexAttributeStr) : null;
}).Where(x => !string.IsNullOrEmpty(x)).ToArray();
}
return new string[0];
}
private static IEnumerable<Type> GetTypeRecursive(Type type) =>
new Type[] { type, }.Concat(type != null ? GetTypeRecursive(type.BaseType) : new Type[] { });
}
}
================================================
FILE: KHSave/Attributes/IngredientAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class IngredientAttribute : InfoAttribute
{
public IngredientAttribute(string name) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/KeyItemAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class KeyItemAttribute : InfoAttribute
{
public KeyItemAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/KeybladeAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class KeybladeAttribute : InfoAttribute
{
public KeybladeAttribute(string name) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/LinkAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class LinkAttribute : InfoAttribute
{
public LinkAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/MagicAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class MagicAttribute : InfoAttribute
{
public MagicAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/ManuscriptAttribute.cs
================================================
namespace KHSave.Attributes
{
public class ManuscriptAttribute : InfoAttribute
{
public ManuscriptAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/MapAttribute.cs
================================================
namespace KHSave.Attributes
{
public class MapAttribute : KeyItemAttribute
{
public MapAttribute(string name = null) : base(name) { }
}
}
================================================
FILE: KHSave/Attributes/MapInfo.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System.Linq;
namespace KHSave.Attributes
{
public class MapInfoAttribute : InfoAttribute
{
public string Id { get; set; }
public MapInfoAttribute(string id, string name) :
base(string.IsNullOrEmpty(name) ? id : name)
{
Id = id;
}
public static string GetMapId(object value)
{
var memberValue = value.ToString();
var memberInfo = value.GetType().GetMember(memberValue).FirstOrDefault();
if (memberInfo != null)
{
if (memberInfo.GetCustomAttributes(typeof(MapInfoAttribute), false)
.FirstOrDefault() is MapInfoAttribute attribute && !string.IsNullOrEmpty(attribute.Info))
{
return attribute.Id;
}
}
return null;
}
}
}
================================================
FILE: KHSave/Attributes/MateriaAttribute.cs
================================================
namespace KHSave.Attributes
{
public class MateriaAttribute : MagicAttribute
{
public MateriaAttribute(string name = null) :
base(name)
{
}
}
public class MagicMateriaAttribute : MateriaAttribute
{
public MagicMateriaAttribute(string name = null) :
base(name)
{
}
}
public class CommandMateriaAttribute : MateriaAttribute
{
public CommandMateriaAttribute(string name = null) :
base(name)
{
}
}
public class SupportMateriaAttribute : MateriaAttribute
{
public SupportMateriaAttribute(string name = null) :
base(name)
{
}
}
public class CompleteMateriaAttribute : MateriaAttribute
{
public CompleteMateriaAttribute(string name = null) :
base(name)
{
}
}
public class SummonMateriaAttribute : MateriaAttribute
{
public SummonMateriaAttribute(string name = null) :
base(name)
{
}
}
}
================================================
FILE: KHSave/Attributes/MogItemAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class MogItemAttribute : InfoAttribute
{
public MogItemAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/MoneyAttribute.cs
================================================
namespace KHSave.Attributes
{
public class MoneyAttribute : InfoAttribute
{
public MoneyAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/RecipeAttribute.cs
================================================
namespace KHSave.Attributes
{
public class RecipeAttribute : MogItemAttribute
{
public RecipeAttribute(string name = null) : base(name) { }
}
}
================================================
FILE: KHSave/Attributes/ReportAttribute.cs
================================================
namespace KHSave.Attributes
{
public class ReportAttribute : KeyItemAttribute
{
public ReportAttribute(string name = null) : base(name) { }
}
}
================================================
FILE: KHSave/Attributes/ShieldAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class ShieldAttribute : InfoAttribute
{
public ShieldAttribute(string name) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/SnackAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class SnackAttribute : InfoAttribute
{
public SnackAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/StaffAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class StaffAttribute : InfoAttribute
{
public StaffAttribute(string name) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/SummonAttribute.cs
================================================
namespace KHSave.Attributes
{
public class SummonAttribute : KeyItemAttribute
{
public SummonAttribute(string name = null) : base(name) { }
}
}
================================================
FILE: KHSave/Attributes/SynthesisAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class SynthesisAttribute : InfoAttribute
{
public SynthesisAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/TentAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class TentAttribute : InfoAttribute
{
public TentAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/TrackAttribute.cs
================================================
namespace KHSave.Attributes
{
public class TrackAttribute : InfoAttribute
{
public TrackAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/UnusedAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using KHSave.Services;
using System;
using System.Linq;
namespace KHSave.Attributes
{
public class UnusedAttribute : Attribute
{
private static CacheService<bool> cache = new CacheService<bool>();
public static bool IsUnused(object value) => cache.Get(value, x =>
{
var memberValue = value.ToString();
var memberInfo = value
.GetType()
.GetMember(memberValue)
.FirstOrDefault();
if (memberInfo != null)
{
if (memberInfo.GetCustomAttributes(typeof(UnusedAttribute), false).Length > 0)
return true;
if (memberInfo.GetCustomAttributes(typeof(InfoAttribute), false).Length > 0)
return false;
}
return true;
});
}
}
================================================
FILE: KHSave/Attributes/WeaponAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace KHSave.Attributes
{
public class WeaponAttribute : InfoAttribute
{
public WeaponAttribute(string name = null) :
base(name)
{ }
}
public class WeaponCloudAttribute : WeaponAttribute
{
public WeaponCloudAttribute(string name = null) :
base(name)
{ }
}
public class WeaponBarretAttribute : WeaponAttribute
{
public WeaponBarretAttribute(string name = null) :
base(name)
{ }
}
public class WeaponTifaAttribute : WeaponAttribute
{
public WeaponTifaAttribute(string name = null) :
base(name)
{ }
}
public class WeaponAerithAttribute : WeaponAttribute
{
public WeaponAerithAttribute(string name = null) :
base(name)
{ }
}
public class WeaponYuffieAttribute : WeaponAttribute
{
public WeaponYuffieAttribute(string name = null) :
base(name)
{ }
}
public class WeaponSononAttribute : WeaponAttribute
{
public WeaponSononAttribute(string name = null) :
base(name)
{ }
}
}
================================================
FILE: KHSave/Attributes/WorldInfoAttribute.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using KHSave.Extensions;
namespace KHSave.Attributes
{
public class WorldAttribute : InfoAttribute
{
public string Id { get; set; }
public WorldAttribute(string id, string name) :
base(name)
{
Id = id;
}
public static string GetWorldId(object value) =>
value.GetAttribute<WorldAttribute>()?.Id;
}
}
================================================
FILE: KHSave/Extensions/AttributeExtensions.cs
================================================
using KHSave.Services;
using System;
using System.Linq;
namespace KHSave.Extensions
{
public static class AttributeExtensions
{
private static CacheService<Attribute> cache = new CacheService<Attribute>();
public static T GetAttribute<T>(this object value) where T : Attribute => (T)cache.Get(value, x =>
{
var memberValue = x.ToString();
var memberInfo = x.GetType().GetMember(memberValue).FirstOrDefault();
if (memberInfo != null)
{
if (memberInfo.GetCustomAttributes(typeof(T), false)
.FirstOrDefault() is T attribute)
return attribute;
}
return null;
});
}
}
================================================
FILE: KHSave/Extensions/BitExtensions.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System;
using System.Collections.Generic;
using System.Text;
namespace KHSave.Extensions
{
public static class BitExtensions
{
public static bool GetFlag(this int value, int bit)
{
return (value & (1 << bit)) != 0;
}
public static int SetFlag(this int value, int bit, bool set)
{
if (set)
{
value |= 1 << bit;
}
else
{
value &= ~(1 << bit);
}
return value;
}
}
}
================================================
FILE: KHSave/Extensions/DateTimeExtensions.cs
================================================
using System;
namespace KHSave.Extensions
{
public static class DateTimeExtensions
{
private static DateTime _baseDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
public static DateTime FromUnixEpoch(this int timestamp) =>
FromUnixEpoch((uint)timestamp);
public static DateTime FromUnixEpoch(this uint timestamp) =>
_baseDateTime.AddSeconds(timestamp);
public static uint ToUnixEpoch(this DateTime dateTime) =>
(uint)((dateTime.Ticks - _baseDateTime.Ticks) / TimeSpan.TicksPerSecond);
}
}
================================================
FILE: KHSave/KHSave.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Xe.BinaryMapper" Version="1.5.2" />
</ItemGroup>
</Project>
================================================
FILE: KHSave/Services/CacheService.cs
================================================
using System;
using System.Collections.Generic;
namespace KHSave.Services
{
public class CacheService<T>
{
private Dictionary<object, T> _cache = new Dictionary<object, T>();
public T Get(object value, Func<object, T> getter)
{
if (_cache.TryGetValue(value, out var response))
return (T)response;
response = getter(value);
_cache.Add(value, response);
return (T)response;
}
}
}
================================================
FILE: KHSave/Services/TransferServiceLL.cs
================================================
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace KHSave.Services
{
public static class TransferServiceLL
{
public static Dictionary<Type, Action<object, object, PropertyInfo>> DefaultMappings =
new Dictionary<Type, Action<object, object, PropertyInfo>>()
{
[typeof(byte[])] = new Action<object, object, PropertyInfo>((dst, src, prop) => CopyArray<byte>(dst, src, prop)),
[typeof(short[])] = new Action<object, object, PropertyInfo>((dst, src, prop) => CopyArray<short>(dst, src, prop)),
[typeof(ushort[])] = new Action<object, object, PropertyInfo>((dst, src, prop) => CopyArray<ushort>(dst, src, prop)),
[typeof(int[])] = new Action<object, object, PropertyInfo>((dst, src, prop) => CopyArray<int>(dst, src, prop)),
[typeof(uint[])] = new Action<object, object, PropertyInfo>((dst, src, prop) => CopyArray<uint>(dst, src, prop)),
[typeof(float[])] = new Action<object, object, PropertyInfo>((dst, src, prop) => CopyArray<float>(dst, src, prop)),
};
public static void CopySave<T>(object dst, object src, Dictionary<Type, Action<object, object, PropertyInfo>> mappings) where T : class =>
CopySave(typeof(T), dst, src, mappings);
public static void CopySave(Type type, object dst, object src, Dictionary<Type, Action<object, object, PropertyInfo>> mappings)
{
foreach (var property in type.GetProperties().Where(x => x.GetMethod != null))
{
if (mappings.TryGetValue(property.PropertyType, out var action))
action(dst, src, property);
else if (property.PropertyType.IsPrimitive || property.PropertyType.IsEnum)
{
if (property.SetMethod != null)
property?.SetValue(dst, property.GetValue(src));
}
else if (property.PropertyType.IsArray || property.PropertyType.IsAssignableFrom(typeof(IList)))
{
var dstList = property.GetValue(dst) as IList;
var srcList = property.GetValue(src) as IList;
if (dstList != null && srcList != null)
{
var length = Math.Min(dstList.Count, srcList.Count);
var itemType = property.PropertyType.IsArray ?
property.PropertyType.GetElementType() :
property.PropertyType.GetGenericArguments().FirstOrDefault();
for (var i = 0; i < length; i++)
{
if (dstList[i] != null && srcList[i] != null)
CopySave(itemType, dstList[i], srcList[i], mappings);
}
if (property.SetMethod != null)
property.SetValue(dst, dstList);
}
}
else if (property.PropertyType.IsInterface || property.PropertyType.IsClass)
{
CopySave(property.PropertyType, property.GetValue(dst), property.GetValue(src), mappings);
}
}
}
public static void CopyArray<T>(object dst, object src, PropertyInfo prop)
{
var srcValue = prop.GetValue(src) as T[];
var dstValue = prop.GetValue(dst) as T[];
if (dstValue != null)
Array.Copy(srcValue, dstValue, Math.Min(srcValue.Length, dstValue.Length));
else
dstValue = srcValue;
prop.SetValue(dst, dstValue);
}
}
}
================================================
FILE: KHSave/StreamHelpers.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System;
using System.IO;
using System.Text;
namespace KHSave
{
public static class StreamHelpers
{
public static T FromBegin<T>(this T stream) where T : Stream => stream.SetPosition(0);
public static T SetPosition<T>(this T stream, int position) where T : Stream
{
stream.Seek(position, SeekOrigin.Begin);
return stream;
}
public static bool ReadFlag(this BinaryReader reader, int offset, int bit)
{
reader.BaseStream.Seek(offset, SeekOrigin.Begin);
return reader.ReadByte().HasFlag(bit);
}
public static int ReadInt32(this BinaryReader reader, int offset)
{
reader.BaseStream.Seek(offset, SeekOrigin.Begin);
return reader.ReadInt32();
}
public static byte[] ReadBytes(this Stream stream) =>
stream.ReadBytes((int)(stream.Length - stream.Position));
public static byte[] ReadBytes(this Stream stream, int length)
{
var data = new byte[length];
stream.Read(data, 0, length);
return data;
}
public static byte[] ReadAllBytes(this Stream stream)
{
var data = stream.SetPosition(0).ReadBytes();
stream.Position = 0;
return data;
}
public static string ReadString(this BinaryReader reader, int length)
{
var data = reader.ReadBytes(length);
var terminatorIndex = Array.FindIndex(data, x => x == 0);
return Encoding.UTF8.GetString(data, 0, terminatorIndex);
}
public static string ReadString(this BinaryReader reader, int offset, int length)
{
reader.BaseStream.Seek(offset, SeekOrigin.Begin);
return reader.ReadString(length);
}
public static bool HasFlag(this byte c, int offset)
{
return (c & (1 << offset)) != 0;
}
public static void Write(this BinaryWriter writer, string str, int length)
{
var data = Encoding.UTF8.GetBytes(str);
if (data.Length <= length)
{
writer.Write(data, 0, data.Length);
int remainsBytes = length = data.Length;
if (remainsBytes > 0)
{
writer.Write(new byte[remainsBytes]);
}
}
else
{
writer.Write(data, 0, length);
}
}
public static void Copy(this Stream source, Stream destination, int length, int bufferSize = 65536)
{
int read;
byte[] buffer = new byte[Math.Min(length, bufferSize)];
while ((read = source.Read(buffer, 0, Math.Min(length, bufferSize))) != 0)
{
destination.Write(buffer, 0, read);
length -= read;
}
}
}
}
================================================
FILE: KHSave.Archives/ArchiveFactories.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using KHSave.Archives.Factories;
using System.IO;
namespace KHSave.Archives
{
public static class ArchiveFactories
{
public static readonly IArchiveFactory Ps4Kh1 = new Ps4Kh1Factory();
public static readonly IArchiveFactory Ps4Kh2 = new Ps4Kh2Factory();
public static readonly IArchiveFactory Ps4KhRecom = new Ps4KhRecomFactory();
public static readonly IArchiveFactory Ps4KhDdd = new Ps4KhDddFactory();
public static readonly IArchiveFactory PcKh1 = new PcKh1Factory();
public static readonly IArchiveFactory PcKh2 = new PcKh2Factory();
public static readonly IArchiveFactory PcKhRecom = new PcKhRecomFactory();
public static readonly IArchiveFactory PcKhBbs = new PcKhBbsactory();
public static readonly IArchiveFactory PcKhDdd = new PcKhDddFactory();
public static readonly IArchiveFactory Ps2Psu = new Ps2PsuFactory();
public static readonly IArchiveFactory Ps2Cbs = new Ps2CbsFactory();
public static readonly IArchiveFactory Ps3Psv = new Ps3PsvFactory();
public static bool TryGetFactory(Stream stream, out IArchiveFactory archiveFactory)
{
if (Ps4Kh1.IsValid(stream))
archiveFactory = Ps4Kh1;
else if (Ps4Kh2.IsValid(stream))
archiveFactory = Ps4Kh2;
else if (Ps4KhRecom.IsValid(stream))
archiveFactory = Ps4KhRecom;
else if (Ps4KhDdd.IsValid(stream))
archiveFactory = Ps4KhDdd;
else if (PcKh1.IsValid(stream))
archiveFactory = PcKh1;
else if (PcKh2.IsValid(stream))
archiveFactory = PcKh2;
else if (PcKhRecom.IsValid(stream))
archiveFactory = PcKhRecom;
else if (PcKhBbs.IsValid(stream))
archiveFactory = PcKhBbs;
else if (PcKhDdd.IsValid(stream))
archiveFactory = PcKhDdd;
else if (Ps2Psu.IsValid(stream))
archiveFactory = Ps2Psu;
else if (Ps2Cbs.IsValid(stream))
archiveFactory = Ps2Cbs;
else if (Ps3Psv.IsValid(stream))
archiveFactory = Ps3Psv;
else
archiveFactory = null;
return archiveFactory != null;
}
}
}
================================================
FILE: KHSave.Archives/Factories/PcKh1Factory.cs
================================================
using System.IO;
namespace KHSave.Archives.Factories
{
internal class PcKh1Factory : IArchiveFactory
{
private const int EntryCount = 200;
private const int Stride = 0x16C40;
private const int Size = 0x11EB09D;
public string Name => "PC KH1FM";
public string Description => "Kingdom Hearts Final Mix (PC)";
public IArchive Create() => new PcSaveArchive(EntryCount, Stride);
public IArchiveEntry CreateEntry() => new PcSaveArchive.Entry();
public bool IsValid(Stream stream) => stream.Length == Size;
public IArchive Read(Stream stream)
{
var archive = PcSaveArchive.Read(stream, EntryCount, Stride);
archive.Name = Description;
return archive;
}
}
}
================================================
FILE: KHSave.Archives/Factories/PcKh2Factory.cs
================================================
using System.IO;
namespace KHSave.Archives.Factories
{
internal class PcKh2Factory : IArchiveFactory
{
private const int EntryCount = 100;
private const int Stride = 0x10FC0;
private const int Size = 0x6BED08;
public string Name => "PC KH2FM";
public string Description => "Kingdom Hearts II Final Mix (PC)";
public IArchive Create() => new PcSaveArchive(EntryCount, Stride);
public IArchiveEntry CreateEntry() => new PcSaveArchive.Entry();
public bool IsValid(Stream stream) => stream.Length == Size;
public IArchive Read(Stream stream)
{
var archive = PcSaveArchive.Read(stream, EntryCount, Stride);
archive.Name = Description;
return archive;
}
}
}
================================================
FILE: KHSave.Archives/Factories/PcKhBbsFactory.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System.IO;
namespace KHSave.Archives.Factories
{
public class PcKhBbsactory : IArchiveFactory
{
private const int EntryCount = 100;
private const int Stride = 0x13C00;
private const int Size = 0x7D3B94;
public string Name => "PC KHBBS";
public string Description => "Kingdom Hearts Birth By Sleep (PC)";
public IArchive Create() =>
new PcSaveArchive(EntryCount, Stride);
public IArchive Read(Stream stream)
{
var archive = PcSaveArchive.Read(stream, EntryCount, Stride);
archive.Name = Description;
return archive;
}
public bool IsValid(Stream stream) => stream.Length == Size;
public IArchiveEntry CreateEntry() => new PcSaveArchive.Entry();
}
}
================================================
FILE: KHSave.Archives/Factories/PcKhDddFactory.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System.IO;
namespace KHSave.Archives.Factories
{
public class PcKhDddFactory : IArchiveFactory
{
private const int EntryCount = 100;
private const int Stride = 0x16600;
private const int Size = 0x8DAE8F;
public string Name => "PC KHDDD";
public string Description => "Kingdom Hearts Dream Drop Distance (PC)";
public IArchive Create() =>
new PcSaveArchive(EntryCount, Stride);
public IArchive Read(Stream stream)
{
var archive = PcSaveArchive.Read(stream, EntryCount, Stride);
archive.Name = Description;
return archive;
}
public bool IsValid(Stream stream) => stream.Length == Size;
public IArchiveEntry CreateEntry() => new PcSaveArchive.Entry();
}
}
================================================
FILE: KHSave.Archives/Factories/PcKhRecomFactory.cs
================================================
using System.IO;
namespace KHSave.Archives.Factories
{
internal class PcKhRecomFactory : IArchiveFactory
{
private const int EntryCount = 100;
private const int Stride = 0x3a30;
private const int Size = 0x188F5F;
public string Name => "PC RECOM";
public string Description => "Kingdom Hearts Re: Chain of Memories (PC)";
public IArchive Create() => new PcSaveArchive(EntryCount, Stride);
public IArchiveEntry CreateEntry() => new PcSaveArchive.Entry();
public bool IsValid(Stream stream) => stream.Length == Size;
public IArchive Read(Stream stream)
{
var archive = PcSaveArchive.Read(stream, EntryCount, Stride);
archive.Name = Description;
return archive;
}
}
}
================================================
FILE: KHSave.Archives/Factories/Ps2CbsFactory.cs
================================================
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace KHSave.Archives.Factories
{
public class Ps2CbsFactory : IArchiveFactory
{
public string Name => throw new NotImplementedException();
public string Description => throw new NotImplementedException();
public IArchive Create()
{
throw new NotImplementedException();
}
public IArchiveEntry CreateEntry()
{
throw new NotImplementedException();
}
public bool IsValid(Stream stream)
{
var currentPosition = stream.Position;
stream.Position = 0;
var result = BitConverter.ToUInt32(stream.ReadBytes(4));
stream.SetPosition((int)currentPosition);
return result == 0x00554643;
}
public IArchive Read(Stream stream)
{
var archive = Ps2CbsArchive.Read(stream, 10);
return archive;
}
}
}
================================================
FILE: KHSave.Archives/Factories/Ps2PsuFactory.cs
================================================
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace KHSave.Archives.Factories
{
public class Ps2PsuFactory : IArchiveFactory
{
public string Name => throw new NotImplementedException();
public string Description => throw new NotImplementedException();
public IArchive Create()
{
throw new NotImplementedException();
}
public IArchiveEntry CreateEntry()
{
throw new NotImplementedException();
}
public bool IsValid(Stream stream)
{
var currentPosition = stream.Position;
stream.Position = 0x240;
var b1 = stream.ReadByte();
stream.Position = 0x440;
var b2 = stream.ReadByte();
var b3 = stream.ReadByte();
stream.SetPosition((int)currentPosition);
return stream.Length > 0x600 &&
(byte)b1 == '.' && (byte)b2 == '.' && (byte)b3 == '.';
}
public IArchive Read(Stream stream)
{
var archive = Ps2PsuArchive.Read(stream, 10);
return archive;
}
}
}
================================================
FILE: KHSave.Archives/Factories/Ps3PsvFactory.cs
================================================
using System;
using System.IO;
namespace KHSave.Archives.Factories
{
public class Ps3PsvFactory : IArchiveFactory
{
public string Name => throw new NotImplementedException();
public string Description => throw new NotImplementedException();
public IArchive Create()
{
throw new NotImplementedException();
}
public IArchiveEntry CreateEntry()
{
throw new NotImplementedException();
}
public bool IsValid(Stream stream)
{
var currentPosition = stream.Position;
stream.Position = 0;
var result = BitConverter.ToUInt32(stream.ReadBytes(4));
stream.SetPosition((int)currentPosition);
return result == 0x50535600;
}
public IArchive Read(Stream stream)
{
return Ps3PsvArchive.Read(stream);
}
}
}
================================================
FILE: KHSave.Archives/Factories/Ps4Kh1Factory.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System.IO;
namespace KHSave.Archives.Factories
{
internal class Ps4Kh1Factory : IArchiveFactory
{
private const int EntryCount = 200;
private const int Stride = 0x16C40;
private const int Size = 0x11cd800;
public string Name => "PS4 KH1";
public string Description => "Kingdom Hearts Final Mix (PS4)";
public IArchive Create() =>
new Ps4SaveArchive(EntryCount, Stride);
public IArchive Read(Stream stream)
{
var archive = Ps4SaveArchive.Read(stream, EntryCount, Stride);
archive.Name = Description;
return archive;
}
public bool IsValid(Stream stream) => stream.Length == Size;
public IArchiveEntry CreateEntry() => new Ps4SaveArchive.Entry();
}
}
================================================
FILE: KHSave.Archives/Factories/Ps4Kh2Factory.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System.IO;
namespace KHSave.Archives.Factories
{
internal class Ps4Kh2Factory : IArchiveFactory
{
private const int EntryCount = 100;
private const int Stride = 0x10FC0;
private const int Size = 0x6a4c00;
public string Name => "PS4 KH2";
public string Description => "Kingdom Hearts II Final Mix (PS4)";
public IArchive Create() =>
new Ps4SaveArchive(EntryCount, Stride);
public IArchive Read(Stream stream)
{
var archive = Ps4SaveArchive.Read(stream, EntryCount, Stride);
archive.Name = Description;
return archive;
}
public bool IsValid(Stream stream) => stream.Length == Size;
public IArchiveEntry CreateEntry() => new Ps4SaveArchive.Entry();
}
}
================================================
FILE: KHSave.Archives/Factories/Ps4KhDddFactory.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System.IO;
namespace KHSave.Archives.Factories
{
public class Ps4KhDddFactory : IArchiveFactory
{
private const int EntryCount = 100;
private const int Stride = 0x16600;
private const int Size = 0x8bfc00;
public string Name => "PS4 KHDDD";
public string Description => "Kingdom Hearts Dream Drop Distance (PS4)";
public IArchive Create() =>
new Ps4SaveArchive(EntryCount, Stride);
public IArchive Read(Stream stream)
{
var archive = Ps4SaveArchive.Read(stream, EntryCount, Stride);
archive.Name = Description;
return archive;
}
public bool IsValid(Stream stream) => stream.Length == Size;
public IArchiveEntry CreateEntry() => new Ps4SaveArchive.Entry();
}
}
================================================
FILE: KHSave.Archives/Factories/Ps4KhRecomFactory.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System.IO;
namespace KHSave.Archives.Factories
{
public class Ps4KhRecomFactory : IArchiveFactory
{
private const int EntryCount = 100;
private const int Stride = 0x3a30;
private const int Size = 0x16e000;
public string Name => "PS4 RECOM";
public string Description => "Kingdom Hearts Re: Chain of Memories (PS4)";
public IArchive Create() =>
new Ps4SaveArchive(EntryCount, Stride);
public IArchive Read(Stream stream)
{
var archive = Ps4SaveArchive.Read(stream, EntryCount, Stride);
archive.Name = Description;
return archive;
}
public bool IsValid(Stream stream) => stream.Length == Size;
public IArchiveEntry CreateEntry() => new Ps4SaveArchive.Entry();
}
}
================================================
FILE: KHSave.Archives/IArchive.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System.Collections.Generic;
using System.IO;
namespace KHSave.Archives
{
public interface IArchive
{
string Name { get; }
int MaxEntryCount { get; }
IList<IArchiveEntry> Entries { get; }
void Write(Stream stream);
}
}
================================================
FILE: KHSave.Archives/IArchiveEntry.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System;
namespace KHSave.Archives
{
public interface IArchiveEntry
{
string Name { get; set; }
DateTime DateCreated { get; set; }
int FlagCreated { get; set; }
DateTime DateModified { get; set; }
int FlagModified { get; set; }
byte[] Data { get; set; }
}
}
================================================
FILE: KHSave.Archives/IArchiveFactory.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System.IO;
namespace KHSave.Archives
{
public interface IArchiveFactory
{
string Name { get; }
string Description { get; }
IArchive Create();
IArchive Read(Stream stream);
bool IsValid(Stream stream);
IArchiveEntry CreateEntry();
}
}
================================================
FILE: KHSave.Archives/KHSave.Archives.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="SharpZipLib" Version="1.3.3" />
<PackageReference Include="Xe.BinaryMapper" Version="1.5.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\KHSave\KHSave.csproj" />
</ItemGroup>
</Project>
================================================
FILE: KHSave.Archives/PcSaveArchive.cs
================================================
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Xe.BinaryMapper;
namespace KHSave.Archives
{
internal class PcSaveArchive : IArchive
{
public class Entry : IArchiveEntry
{
private static readonly long UnixTimeBase = new DateTime(1970, 1, 1).Ticks;
[Data(Count = 0x40)] public string Name { get; set; }
[Data(0x40)] public int RawDateCreated { get; set; }
[Data(0x44)] public int FlagCreated { get; set; }
[Data(0x48)] public int RawDateModified { get; set; }
[Data(0x4c)] public int FlagModified { get; set; }
[Data(0x50)] public int Length { get; set; }
[Data(0x54)] public int SomeKindOfFlag { get; set; }
[Data(0x58, Count = 0x100)] public byte[] Padding { get; set; }
public DateTime DateCreated { get => Map(RawDateCreated); set => RawDateCreated = Map(value); }
public DateTime DateModified { get => Map(RawDateModified); set => RawDateModified = Map(value); }
public byte[] Data { get; set; }
private static DateTime Map(int ticks) => new DateTime(ticks * TimeSpan.TicksPerSecond + UnixTimeBase);
private static int Map(DateTime dateTime) => (int)((dateTime.Ticks - UnixTimeBase) / TimeSpan.TicksPerSecond);
}
private const int PngHeaderLength = 0x70;
private const int EncryptedLength = 0xF0;
private const int KeyLength = 0x10;
private const int KeyOffset = EncryptedLength - KeyLength;
private const int EntryLength = 0x158;
private readonly int _stride;
private readonly byte[] _encryptionKey;
private byte[] _pngHeader;
private byte[] _pngFooter;
internal PcSaveArchive(int entryCount, int stride)
{
MaxEntryCount = entryCount;
_stride = stride;
_encryptionKey = new byte[KeyLength];
Entries = new List<IArchiveEntry>(MaxEntryCount);
}
private PcSaveArchive(Stream stream, int entryCount, int stride)
{
MaxEntryCount = entryCount;
_stride = stride;
_pngHeader = new byte[PngHeaderLength];
stream.Read(_pngHeader);
var entryData = new byte[entryCount * EntryLength];
stream.Read(entryData);
_encryptionKey = new byte[KeyLength];
Array.Copy(entryData, KeyOffset, _encryptionKey, 0, KeyLength);
for (var i = 0; i < EncryptedLength; i++)
entryData[i] ^= _encryptionKey[i & 15];
var entryStream = new MemoryStream(entryData);
Entries = Enumerable.Range(0, entryCount)
.Select(i => BinaryMapping.ReadObject<Entry>(entryStream, i * EntryLength))
.ToArray();
var baseOffset = stream.Position;
foreach (var entry in Entries.Cast<Entry>())
{
entry.Data = new byte[entry.Length];
stream.Read(entry.Data, 0, entry.Length);
baseOffset += _stride;
stream.Position = baseOffset;
}
var remainingByteCount = stream.Length - stream.Position;
_pngFooter = new byte[remainingByteCount];
stream.Read(_pngFooter);
}
public string Name { get; internal set; } = "Kingdom Hearts PC Save Archive";
public int MaxEntryCount { get; }
public IList<IArchiveEntry> Entries { get; }
public void Write(Stream stream)
{
var entries = Entries
.Select(x => new Entry
{
Name = x.Name,
DateCreated = x.DateCreated,
FlagCreated = x.FlagCreated,
DateModified = x.DateModified,
FlagModified = x.FlagModified,
Length = x.Data.Length,
Data = x.Data,
Padding = new byte[0x100]
})
.Take(MaxEntryCount)
.ToList();
while (entries.Count < MaxEntryCount)
entries.Add(new Entry
{
Name = string.Empty,
Data = new byte[0]
});
stream.Position = 0;
stream.Write(_pngHeader);
var entryData = new byte[entries.Count * EntryLength];
using var entryStream = new MemoryStream(entryData);
foreach (var entry in entries)
BinaryMapping.WriteObject(entryStream, entry, (int)entryStream.Position);
for (var i = 0; i < EncryptedLength; i++)
entryData[i] ^= _encryptionKey[i & 15];
stream.Write(entryData);
var baseOffset = (int)stream.Position;
foreach (var entry in entries)
{
stream.Write(entry.Data, 0, (int)entry.Length);
var padding = _stride - entry.Length;
while (--padding > 0)
stream.WriteByte(0);
baseOffset += _stride;
stream.Position = baseOffset;
}
stream.Write(_pngFooter);
}
public static PcSaveArchive Read(Stream stream, int entryCount, int stride) =>
new PcSaveArchive(stream, entryCount, stride);
}
}
================================================
FILE: KHSave.Archives/Ps2CbsArchive.cs
================================================
// https://github.com/root670/PS2SaveUtility/blob/master/src/CBSFile.cpp
using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
using System;
using System.Collections.Generic;
using System.IO;
using Xe.BinaryMapper;
namespace KHSave.Archives
{
public class Ps2CbsArchive : IArchive
{
private class Header
{
[Data(Count = 4)] public uint Magic { get; set; }
[Data] public uint Unk1 { get; set; }
[Data] public uint DataOffset { get; set; }
[Data] public uint DecompressedSize { get; set; }
[Data] public uint CompressedSize { get; set; }
[Data(Count = 32)] public string Name { get; set; }
[Data] public sceMcStDateTime Created { get; set; }
[Data] public sceMcStDateTime Modified { get; set; }
[Data] public uint Unk2 { get; set; }
[Data] public uint Mode { get; set; }
[Data(Count = 16)] public byte[] Unk3 { get; set; }
[Data(Count = 72)] public string Title { get; set; }
[Data(Count = 132)] public string Description { get; set; }
}
public class Entry : IArchiveEntry
{
[Data] public sceMcStDateTime Created { get; set; }
[Data] public sceMcStDateTime Modified { get; set; }
[Data] public uint Length { get; set; }
[Data] public uint Mode { get; set; }
[Data(Count = 8)] public byte[] Unk1 { get; set; }
[Data(Count = 32)] public string Name { get; set; }
public byte[] Data { get; set; }
public DateTime DateCreated { get => Map(Created); set => throw new NotImplementedException(); }
public int FlagCreated { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public DateTime DateModified { get => Map(Modified); set => throw new NotImplementedException(); }
public int FlagModified { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
private static DateTime Map(sceMcStDateTime date) => new(date.Year, date.Month, date.Day, date.Hour, date.Min, date.Sec);
}
internal Ps2CbsArchive(int entryCount)
{
MaxEntryCount = entryCount;
Entries = new List<IArchiveEntry>(MaxEntryCount);
}
private Ps2CbsArchive(Stream stream, int entryCount)
{
MaxEntryCount = entryCount;
Entries = new List<IArchiveEntry>(MaxEntryCount);
var header = BinaryMapping.ReadObject<Header>(stream);
var len = stream.Length - stream.Position;
var buff = new byte[len];
stream.Read(buff, 0, (int)len);
rc4Crypt(buff, (int)len);
using var decompressedStream = new MemoryStream(Decompress(buff, (int)header.DecompressedSize));
long offset = 0;
while (offset < (header.DecompressedSize - 64))
{
var entry = BinaryMapping.ReadObject<Entry>(decompressedStream);
entry.Data = new byte[entry.Length];
decompressedStream.Read(entry.Data, 0, (int)entry.Length);
offset = decompressedStream.Position;
Entries.Add(entry);
}
}
public string Name => "PS2 CBS Archive";
public int MaxEntryCount { get; }
public IList<IArchiveEntry> Entries { get; }
public void Write(Stream stream)
{
throw new NotImplementedException();
}
public static Ps2CbsArchive Read(Stream stream, int entryCount) =>
new Ps2CbsArchive(stream, entryCount);
private static byte[] Decompress(byte[] buffer, int length)
{
using var compressedStream = new MemoryStream(buffer);
using var inflater = new InflaterInputStream(compressedStream);
var decomp = new byte[length];
inflater.Read(decomp);
return decomp;
}
private static void rc4Crypt(byte[] buf, int bufLen)
{
byte j = 0;
byte k = 0;
byte temp;
byte[] s = new byte[]
{
0x5f, 0x1f, 0x85, 0x6f, 0x31, 0xaa, 0x3b, 0x18,
0x21, 0xb9, 0xce, 0x1c, 0x07, 0x4c, 0x9c, 0xb4,
0x81, 0xb8, 0xef, 0x98, 0x59, 0xae, 0xf9, 0x26,
0xe3, 0x80, 0xa3, 0x29, 0x2d, 0x73, 0x51, 0x62,
0x7c, 0x64, 0x46, 0xf4, 0x34, 0x1a, 0xf6, 0xe1,
0xba, 0x3a, 0x0d, 0x82, 0x79, 0x0a, 0x5c, 0x16,
0x71, 0x49, 0x8e, 0xac, 0x8c, 0x9f, 0x35, 0x19,
0x45, 0x94, 0x3f, 0x56, 0x0c, 0x91, 0x00, 0x0b,
0xd7, 0xb0, 0xdd, 0x39, 0x66, 0xa1, 0x76, 0x52,
0x13, 0x57, 0xf3, 0xbb, 0x4e, 0xe5, 0xdc, 0xf0,
0x65, 0x84, 0xb2, 0xd6, 0xdf, 0x15, 0x3c, 0x63,
0x1d, 0x89, 0x14, 0xbd, 0xd2, 0x36, 0xfe, 0xb1,
0xca, 0x8b, 0xa4, 0xc6, 0x9e, 0x67, 0x47, 0x37,
0x42, 0x6d, 0x6a, 0x03, 0x92, 0x70, 0x05, 0x7d,
0x96, 0x2f, 0x40, 0x90, 0xc4, 0xf1, 0x3e, 0x3d,
0x01, 0xf7, 0x68, 0x1e, 0xc3, 0xfc, 0x72, 0xb5,
0x54, 0xcf, 0xe7, 0x41, 0xe4, 0x4d, 0x83, 0x55,
0x12, 0x22, 0x09, 0x78, 0xfa, 0xde, 0xa7, 0x06,
0x08, 0x23, 0xbf, 0x0f, 0xcc, 0xc1, 0x97, 0x61,
0xc5, 0x4a, 0xe6, 0xa0, 0x11, 0xc2, 0xea, 0x74,
0x02, 0x87, 0xd5, 0xd1, 0x9d, 0xb7, 0x7e, 0x38,
0x60, 0x53, 0x95, 0x8d, 0x25, 0x77, 0x10, 0x5e,
0x9b, 0x7f, 0xd8, 0x6e, 0xda, 0xa2, 0x2e, 0x20,
0x4f, 0xcd, 0x8f, 0xcb, 0xbe, 0x5a, 0xe0, 0xed,
0x2c, 0x9a, 0xd4, 0xe2, 0xaf, 0xd0, 0xa9, 0xe8,
0xad, 0x7a, 0xbc, 0xa8, 0xf2, 0xee, 0xeb, 0xf5,
0xa6, 0x99, 0x28, 0x24, 0x6c, 0x2b, 0x75, 0x5d,
0xf8, 0xd3, 0x86, 0x17, 0xfb, 0xc0, 0x7b, 0xb3,
0x58, 0xdb, 0xc7, 0x4b, 0xff, 0x04, 0x50, 0xe9,
0x88, 0x69, 0xc9, 0x2a, 0xab, 0xfd, 0x5b, 0x1b,
0x8a, 0xd9, 0xec, 0x27, 0x44, 0x0e, 0x33, 0xc8,
0x6b, 0x93, 0x32, 0x48, 0xb6, 0x30, 0x43, 0xa5
};
for (int i = 0; i < bufLen; i++)
{
j += 1;
k += s[j];
temp = s[j];
s[j] = s[k];
s[k] = temp;
buf[i] ^= s[(s[j] + s[k]) & 0xFF];
}
}
}
}
================================================
FILE: KHSave.Archives/Ps2PsuArchive.cs
================================================
// https://github.com/root670/PS2SaveUtility/blob/master/src/PSUFile.cpp
using System;
using System.Collections.Generic;
using System.IO;
using Xe.BinaryMapper;
namespace KHSave.Archives
{
public class Ps2PsuArchive : IArchive
{
private const int Alignment = 1024;
public class Entry : IArchiveEntry
{
[Data] public uint Mode { get; set; }
[Data] public uint Length { get; set; }
[Data] public sceMcStDateTime Created { get; set; }
[Data] public uint Cluster { get; set; }
[Data] public uint DirIndex { get; set; }
[Data] public sceMcStDateTime Modified { get; set; }
[Data] public uint Attr { get; set; }
[Data(Count = 28)] public byte[] Padding { get; set; }
[Data(Count = 32)] public string Name { get; set; }
[Data(Count = 0x1A0)] public byte[] Padding2 { get; set; }
public byte[] Data { get; set; }
public DateTime DateCreated { get => Map(Created); set => throw new NotImplementedException(); }
public int FlagCreated { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public DateTime DateModified { get => Map(Modified); set => throw new NotImplementedException(); }
public int FlagModified { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
private static DateTime Map(sceMcStDateTime date) => new(date.Year, date.Month, date.Day, date.Hour, date.Min, date.Sec);
}
internal Ps2PsuArchive(int entryCount)
{
MaxEntryCount = entryCount;
Entries = new List<IArchiveEntry>(MaxEntryCount);
}
private Ps2PsuArchive(Stream stream, int entryCount)
{
MaxEntryCount = entryCount;
Entries = new List<IArchiveEntry>(MaxEntryCount);
var header = BinaryMapping.ReadObject<Entry>(stream);
for (int i = 0; i < header.Length; i++)
{
var file = BinaryMapping.ReadObject<Entry>(stream);
file.Data = new byte[file.Length];
stream.Read(file.Data, 0, (int)file.Length);
var offset_shift = file.Length % Alignment;
var pos2 = offset_shift > 0 ? stream.Position + Alignment - offset_shift : stream.Position;
stream.Position = pos2;
Entries.Add(file);
}
}
public string Name => "PS2 PSU Archive";
public int MaxEntryCount { get; }
public IList<IArchiveEntry> Entries { get; }
public void Write(Stream stream)
{
throw new NotImplementedException();
}
public static Ps2PsuArchive Read(Stream stream, int entryCount) =>
new Ps2PsuArchive(stream, entryCount);
}
public class sceMcStDateTime
{
[Data] public byte Resv2 { get; set; }
[Data] public byte Sec { get; set; }
[Data] public byte Min { get; set; }
[Data] public byte Hour { get; set; }
[Data] public byte Day { get; set; }
[Data] public byte Month { get; set; }
[Data] public ushort Year { get; set; }
}
}
================================================
FILE: KHSave.Archives/Ps3PsvArchive.cs
================================================
// https://github.com/PMStanley/PSV-Exporter/blob/master/PSVFormat.pas
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Xe.BinaryMapper;
namespace KHSave.Archives
{
public class Ps3PsvArchive : IArchive
{
private class Header
{
[Data] public uint Magic { get; set; }
[Data] public int Padding { get; set; }
[Data(Count = 0x14)] public byte[] KeySeed { get; set; }
[Data(Count = 0x14)] public byte[] Signature { get; set; }
[Data(Count = 8)] public byte[] Padding2 { get; set; }
[Data] public int HeaderSize { get; set; }
[Data] public int SaveType { get; set; }
}
private class Ps2Header
{
[Data] public int DisplaySize { get; set; }
[Data] public int SysPos { get; set; }
[Data] public int SysSize { get; set; }
[Data] public int Icon1Pos { get; set; }
[Data] public int Icon1Size { get; set; }
[Data] public int Icon2Pos { get; set; }
[Data] public int Icon2Size { get; set; }
[Data] public int Icon3Pos { get; set; }
[Data] public int Icon3Size { get; set; }
[Data] public int NumFiles { get; set; }
}
private class Ps2MainDirInfo
{
[Data] public sceMcStDateTime Created { get; set; }
[Data] public sceMcStDateTime Modified { get; set; }
[Data] public int NumFilesInDir { get; set; }
[Data] public int Attr { get; set; }
[Data(Count = 32)] public string Name { get; set; }
}
private class Ps2FileEntry : IArchiveEntry
{
[Data] public sceMcStDateTime Created { get; set; }
[Data] public sceMcStDateTime Modified { get; set; }
[Data] public int Size { get; set; }
[Data] public int Attr { get; set; }
[Data(Count = 32)] public string Name { get; set; }
[Data] public int Offset { get; set; }
public byte[] Data { get; set; }
public DateTime DateCreated { get => Map(Created); set => throw new NotImplementedException(); }
public int FlagCreated { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public DateTime DateModified { get => Map(Modified); set => throw new NotImplementedException(); }
public int FlagModified { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
private static DateTime Map(sceMcStDateTime date) => new(date.Year, date.Month, date.Day, date.Hour, date.Min, date.Sec);
}
internal Ps3PsvArchive()
{
Entries = new List<IArchiveEntry>(MaxEntryCount);
}
private Ps3PsvArchive(Stream stream)
{
Entries = new List<IArchiveEntry>(MaxEntryCount);
var header = BinaryMapping.ReadObject<Header>(stream);
//psv could also store ps1 saves
//i'm ignoring that fact right now and only implement the ps2 side
if (header.SaveType == 1)
return;
var ps2Header = BinaryMapping.ReadObject<Ps2Header>(stream);
stream.Position += 0x38;
var entries = Enumerable.Range(0, ps2Header.NumFiles)
.Select(x => BinaryMapping.ReadObject<Ps2FileEntry>(stream, (int)stream.Position))
.ToArray();
foreach (var entry in entries)
{
stream.Position = entry.Offset;
entry.Data = new byte[entry.Size];
stream.Read(entry.Data, 0, entry.Size);
}
Entries = entries;
}
public string Name => "PS3 PSV";
public int MaxEntryCount { get; }
public IList<IArchiveEntry> Entries { get; }
public void Write(Stream stream)
{
throw new NotImplementedException();
}
public static Ps3PsvArchive Read(Stream stream) =>
new Ps3PsvArchive(stream);
}
}
================================================
FILE: KHSave.Archives/Ps4SaveArchive.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Xe.BinaryMapper;
namespace KHSave.Archives
{
internal class Ps4SaveArchive : IArchive
{
private const int Alignment = 0x400;
public class Entry : IArchiveEntry
{
private static readonly long UnixTimeBase = new DateTime(1970, 1, 1).Ticks;
[Data(Count = 0x40)] public string Name { get; set; }
[Data(0x40)] public int RawDateCreated { get; set; }
[Data(0x44)] public int FlagCreated { get; set; }
[Data(0x48)] public int RawDateModified { get; set; }
[Data(0x4c)] public int FlagModified { get; set; }
[Data(0x50)] public int Length { get; set; }
[Data(0x54)] public int SomeKindOfFlag { get; set; }
public DateTime DateCreated { get => Map(RawDateCreated); set => RawDateCreated = Map(value); }
public DateTime DateModified { get => Map(RawDateModified); set => RawDateModified = Map(value); }
public byte[] Data { get; set; }
private static DateTime Map(int ticks) => new DateTime(ticks * TimeSpan.TicksPerSecond + UnixTimeBase);
private static int Map(DateTime dateTime) => (int)((dateTime.Ticks - UnixTimeBase) / TimeSpan.TicksPerSecond);
}
private readonly int _stride;
internal Ps4SaveArchive(int entryCount, int stride)
{
MaxEntryCount = entryCount;
_stride = stride;
Entries = new List<IArchiveEntry>(MaxEntryCount);
}
private Ps4SaveArchive(Stream stream, int entryCount, int stride)
{
MaxEntryCount = entryCount;
_stride = stride;
var entries = Enumerable.Range(0, entryCount)
.Select(x => BinaryMapping.ReadObject<Entry>(stream, (int)stream.Position))
.ToArray();
var baseOffset = stream.Position;
foreach (var entry in entries)
{
stream.Position = baseOffset;
entry.Data = new byte[entry.Length];
stream.Read(entry.Data, 0, (int)entry.Length);
baseOffset += _stride;
}
Entries = entries;
}
public string Name { get; internal set; } = "PS4 Save Archive";
public int MaxEntryCount { get; }
public IList<IArchiveEntry> Entries { get; }
public void Write(Stream stream)
{
var entries = Entries
.Select(x => new Entry
{
Name = x.Name,
DateCreated = x.DateCreated,
FlagCreated = x.FlagCreated,
DateModified = x.DateModified,
FlagModified = x.FlagModified,
Length = x.Data.Length,
Data = x.Data
})
.Take(MaxEntryCount)
.ToList();
while (entries.Count < MaxEntryCount)
entries.Add(new Entry
{
Name = string.Empty,
Data = new byte[0]
});
stream.Position = 0;
foreach (var entry in entries)
{
BinaryMapping.WriteObject(stream, entry, (int)stream.Position);
}
var baseOffset = (int)stream.Position;
foreach (var entry in entries)
{
stream.Position = baseOffset;
baseOffset += _stride;
stream.Write(entry.Data, 0, (int)entry.Length);
var padding = _stride - entry.Length;
while (--padding > 0)
stream.WriteByte(0);
}
stream.SetLength(baseOffset + Alignment - (baseOffset % Alignment));
}
public static Ps4SaveArchive Read(Stream stream, int entryCount, int stride) =>
new Ps4SaveArchive(stream, entryCount, stride);
}
}
================================================
FILE: KHSave.Lib02/KHSave.Lib02.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Xe.BinaryMapper" Version="1.5.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\KHSave\KHSave.csproj" />
</ItemGroup>
</Project>
================================================
FILE: KHSave.Lib02/Models/Objective.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using Xe.BinaryMapper;
namespace KHSave.Trssv.Models
{
public class Objective
{
// bit 0: unlocked
// bit 4: unread
[Data] public short Flags { get; set; }
[Data] public short Progress { get; set; }
}
}
================================================
FILE: KHSave.Lib02/Models/PlayableCharacter.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using Xe.BinaryMapper;
namespace KHSave.Trssv.Models
{
public class PlayableCharacter
{
[Data(0, 0x200)] public byte[] Data { get; set; }
[Data(0x08C)] public int Hp { get; set; }
[Data(0x090)] public int Mp { get; set; }
[Data(0x094)] public int Focus { get; set; }
}
}
================================================
FILE: KHSave.Lib02/Models/Slot.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using KHSave.Trssv.Types;
using System.Collections.Generic;
using Xe.BinaryMapper;
namespace KHSave.Trssv.Models
{
public class Slot
{
[Data(0, 0x3B40)] public byte[] Data { get; set; }
//[Data(0x00)] public bool IsDataExists { get; set; } // Bit 0
//[Data(0x00)] public bool SaveClear { get; set; } // Bit 2
[Data(0x04)] public DifficultyType Difficulty { get; set; }
[Data(0x18)] public int Experience { get; set; }
[Data(0x20)] public byte Level { get; set; }
[Data(0x24)] public LocationType Location { get; set; }
[Data(0x30)] public int EnemiesDefeated { get; set; }
[Data(0x34)] public int StyleChangesPerformed { get; set; }
[Data(0x3C)] public int MagicFiragaUses { get; set; }
[Data(0x44)] public int MagicBlizzardUses { get; set; }
[Data(0x4C)] public int MagicThundagaUses { get; set; }
[Data(0x54)] public int MagicUnknown1Uses { get; set; }
[Data(0x5C)] public int MagicUnknown2Uses { get; set; }
[Data(0x64)] public int MagicCuragaUses { get; set; }
[Data(0xA30, 52, 4)] public List<Objective> Objectives { get; set; }
[Data(0x2384, 5, 0x200)] public List<PlayableCharacter> Pc { get; set; }
[Data(0x2e10)] public int StoryProgression { get; set; }
[Data(0x3324, 0x100)] public string MapPath { get; set; }
[Data(0x3424, 0x40)] public string MapSpawn { get; set; }
[Data(0x3464, 0x100)] public string PlayerScript { get; set; }
[Data(0x3564, 0x100)] public string PlayerCharacter { get; set; }
[Data(0x3664, 0x100)] public string SupportCharacter { get; set; }
[Data(0x3a78)] public CommandType Shortcut1Circle { get; set; }
[Data(0x3a7c)] public CommandType Shortcut1Triangle { get; set; }
[Data(0x3a80)] public CommandType Shortcut1Square { get; set; }
[Data(0x3a84)] public CommandType Shortcut1Cross { get; set; }
[Data(0x3a88)] public CommandType Shortcut2Circle { get; set; }
[Data(0x3a8c)] public CommandType Shortcut2Triangle { get; set; }
[Data(0x3a90)] public CommandType Shortcut2Square { get; set; }
[Data(0x3a94)] public CommandType Shortcut2Cross { get; set; }
}
}
================================================
FILE: KHSave.Lib02/SaveKh02.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using KHSave.Trssv.Models;
using System.Collections.Generic;
using System.IO;
using Xe.BinaryMapper;
namespace KHSave.Trssv
{
public class SaveKh02
{
[Data(0, 0x1725B0)] public byte[] Data { get; set; }
[Data(0x10)] public bool IsVibrationEnable { get; set; }
[Data] public bool InvertCameraVertical { get; set; }
[Data] public bool InvertCameraHorizontal { get; set; }
[Data] public bool IsMapVisible { get; set; }
[Data] public bool IsSubtitlesVisible { get; set; }
[Data] public bool Unk10_Bit5 { get; set; }
[Data] public bool CanEarnExp { get; set; }
[Data(0x14)] public int CameraSpeed { get; set; }
[Data(0x18)] public int Brightness { get; set; }
[Data(0x1C)] public int TheaterModeWatched { get; set; }
[Data(0x38)] public int TheaterMode { get; set; }
[Data(0xB0, 100, 0x3B40)] public List<Slot> Slots { get; set; }
public static bool IsValid(Stream stream)
{
var prevPosition = stream.Position;
var magicCode = new BinaryReader(stream).ReadInt32();
stream.Position = prevPosition;
return magicCode == 0x45564153; // SAVE
}
public void Write(Stream stream) => BinaryMapping.WriteObject(stream, this);
public static SaveKh02 Read(Stream stream) => BinaryMapping.ReadObject<SaveKh02>(stream);
}
}
================================================
FILE: KHSave.Lib02/Types/CommandType.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using KHSave.Attributes;
namespace KHSave.Trssv.Types
{
public enum CommandType
{
[Info("Empty")] Empty = 0,
[Info("Counter Blast")] CounterBlast = 26,
[Info("Attack")] Attack = 46,
[Info("Magic")] Magic = 49,
[Magic("Firaga")] Firaga = 51,
[Magic("Firaja")] Firaja = 52,
[Magic("Blizzaga")] Blizzaga = 55,
[Magic("Blizzaja")] Blizzaja = 56,
[Magic("Thundaga")] Thundaga = 59,
[Magic("Thundaja")] Thundaja = 60,
[Magic("Curaga")] Curaga = 71,
[Info("Items")] Items = 77,
[Consumable("Potion")] Potion,
[Consumable("Hi-Potion")] HiPotion,
[Consumable("Mega-Potion")] MegaPotion,
[Consumable("Ether")] Ether,
[Consumable("Mega-Ether")] MegaEther,
[Consumable("Elixir")] Elixir,
[Consumable("Megalixir")] Megalixir,
[Info("Talk")] Talk = 88,
[Info("Open")] Open,
[Info("Examine")] Examine,
[Info("Spellweaver")] Spellweaver = 112,
[Info("Wayfinder")] Wayfinder,
[Info("Finish Spellweaver")] Finish1 = 134,
[Info("Finish Wayfinder")] Finish2,
[Info("Wayfinder (final boss)")] WayfinderAlt = 167,
[Info("Prism Rain")] PrismRain = 210,
}
}
================================================
FILE: KHSave.Lib02/Types/DifficultyType.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using KHSave.Attributes;
namespace KHSave.Trssv.Types
{
public enum DifficultyType : byte
{
[Info] Beginner,
[Info] Normal,
[Info] Proud,
[Info] Critical
}
}
================================================
FILE: KHSave.Lib02/Types/LocationType.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using KHSave.Attributes;
namespace KHSave.Trssv.Types
{
public enum LocationType : byte
{
[Info("Main Road")] Location00,
[Info("Castle Town (variant #1)")] Location01,
[Info("Castle Town (variant #2)")] Location02,
[Info("Castle Town (variant #3)")] Location03,
[Info("The World Within (variant #1)")] Location04,
[Info("The World Within (variant #2)")] Location05,
[Info("The World Within (variant #3)")] Location06,
[Info("The World Within (variant #4)")] Location07,
[Info("The World Within (variant #5)")] Location08,
[Info("The World Within (variant #6)")] Location09,
[Info("The World Within (variant #7)")] Location0a,
[Info("The World Within (variant #8)")] Location0b,
[Info("The World Within (variant #9)")] Location0c,
[Info("The World Within (variant #10)")] Location0d,
[Info("The World Within (variant #11)")] Location0e,
[Info("The World Within (variant #12)")] Location0f,
[Info("The World Within (variant #13)")] Location10,
[Info("The World Within (variant #14)")] Location11,
[Info("The World Within (variant #15)")] Location12,
[Info("Uncertain Path")] Location13,
[Info("Rocky Path (variant #1)")] Location14,
[Info("Rocky Path (variant #2)")] Location15,
[Info("Path's End")] Location16,
[Info("Depths of Darkness (variant #1)")] Location17,
[Info("Depths of Darkness (variant #2)")] Location18,
[Info("Destiny Islands")] Location19,
}
}
================================================
FILE: KHSave.Lib02/Types/MapType.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using KHSave.Attributes;
namespace KHSave.Trssv.Types
{
public enum MapType
{
[MapInfo("dw_01", "Main Road")] dw_01,
[MapInfo("dw_02", "Castle Town")] dw_02,
[MapInfo("dw_03", "The World Within")] dw_03,
[MapInfo("dw_04", "Inside the mirror (Road)")] dw_04,
[MapInfo("dw_05", "Inside the mirror (Colums)")] dw_05,
[MapInfo("dw_06", "Inside the mirror (Dwarf)")] dw_06,
[MapInfo("dw_07", "Inside the mirror (Battle)")] dw_07,
[MapInfo("dw_08", "Forest of Thorns")] dw_08,
[MapInfo("dw_09", "Depths of Darkness")] dw_09,
[MapInfo("dw_10", "Destiny Island")] dw_10,
[MapInfo("dw_11", "Boss Rush (vs. Darkside)")] dw_11,
[MapInfo("dw_12", "Boss Rush (Columns room)")] dw_12,
[MapInfo("dw_58", "Opening")] dw_58,
[MapInfo("dw_59", "dw59 (infinite loading screen)")] dw_59,
[MapInfo("dw_60", "Ending")] dw_60,
}
}
================================================
FILE: KHSave.Lib02/Types/SpawnType.cs
================================================
/*
Kingdom Save Editor
Copyright (C) 2020 Luciano Ciccariello
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using KHSave.Attributes;
namespace KHSave.Trssv.Types
{
public enum SpawnType
{
[Info] dw_01_Lv_AutoSave_01,
[Info] dw_01_Lv_AutoSave_02,
[Info] dw_01_Lv_AutoSave_03,
[Info] dw_01_Lv_AutoSave_04,
[Info] dw_01_Lv_AutoSave_05,
[Info] dw_01_Lv_AutoSave_06,
[Info] dw_01_Lv_Debug_01,
[Info] dw_01_Lv_Debug_02,
[Info] dw_01_Lv_Debug_03,
[Info] dw_01_Lv_Skip_dw004,
[Info] dw_01_Lv_Skip_dw005,
[Info] dw_01_Lv_Skip_dw006,
[Info] dw_01_Lv_Skip_dw007,
[Info] dw_01_Lv_Skip_dw008,
[Info] dw_01_Lv_Start_01,
[Info] dw_01_Lv_Start_04,
[Info] dw_01_Lv_Start_05,
[Info] dw_02_Lv_AutoSave_01,
[Info] dw_02_Lv_AutoSave_02,
[Info] dw_02_Lv_AutoSave_03,
[Info] dw_02_Lv_AutoSave_04,
[Info] dw_02_Lv_AutoSave_05,
[Info] dw_02_Lv_AutoSave_06,
[Info] dw_02_Lv_AutoSave_07,
[Info] dw_02_Lv_Debug_01,
[Info] dw_02_Lv_Debug_02,
[Info] dw_02_Lv_Debug_03,
[Info] dw_02_Lv_Debug_04,
[Info] dw_02_Lv_Debug_ReStart,
[Info] dw_02_Lv_Retry_01,
[Info] dw_02_Lv_Save_01,
[Info] dw_02_Lv_Skip_dw011,
[Info] dw_02_Lv_Skip_dw012,
[Info] dw_02_Lv_Start_01,
[Info] dw_02_Lv_Start_02,
[Info] dw_02_Lv_Start_03,
[Info] dw_03_Lv_AutoSave,
[Info] dw_03_Lv_AutoSave_01,
[Info] dw_03_Lv_AutoSave_02,
[Info] dw_03_Lv_AutoSave_03,
[Info] dw_03_Lv_AutoSave_04,
[Info] dw_03_Lv_AutoSave_05,
[Info] dw_03_Lv_AutoSave_06,
[Info] dw_03_Lv_AutoSave_07,
[Info] dw_03_Lv_AutoSave_08,
[Info] dw_03_Lv_AutoSave_09,
[Info] dw_03_Lv_ChallengeClear,
[Info] dw_03_Lv_Clear_dw_04,
[Info] dw_03_Lv_Clear_dw_05,
[Info] dw_03_Lv_Clear_dw_06,
[Info] dw_03_Lv_Debug_01,
[Info] dw_03_Lv_Save_01,
[Info] dw_03_Lv_Start,
[Info] dw_03_Lv_Start_01,
[Info] dw_03_Lv_Start_02,
[Info] dw_03_Lv_Start_03,
[Info] dw_03_Lv_Start_04,
[Info] dw_03_Lv_Start_05,
[Info] dw_03_Lv_Start_06,
[Info] dw_03_Lv_Start_07,
[Info] dw_03_Lv_Start_08,
[Info] dw_03_Lv_Start_09,
[Info] dw_04_Lv_AutoSave_01,
[Info] dw_04_Lv_AutoSave_02,
[Info] dw_04_Lv_Start_01,
[Info] dw_04_Lv_Start_02,
[Info] dw_04_Lv_Start_03,
[Info] dw_04_Lv_Start_04,
[Info] dw_05_Lv_AutoSave_01,
[Info] dw_05_Lv_AutoSave_02,
[Info] dw_05_Lv_Returned_01,
[Info] dw_05_Lv_Returned_02,
[Info] dw_05_Lv_Returned_03,
[Info] dw_05_Lv_Returned_04,
[Info] dw_05_Lv_Start_01,
[Info] dw_05_Lv_Start_02,
[Info] dw_05_Lv_Start_03,
[Info] dw_05_Lv_Start_04,
[Info] dw_05_Normal,
[Info] dw_06_Lv_AutoSave_01,
[Info] dw_06_Lv_AutoSave_02,
[Info] dw_06_Lv_AutoSave_03,
[Info] dw_06_Lv_Restart_A1,
[Info] dw_06_Lv_Restart_A2,
[Info] dw_06_Lv_Restart_B,
[Info] dw_06_Lv_Restart_C,
[Info] dw_06_Lv_Restart_D,
[Info] dw_06_Lv_Restart_E,
[Info] dw_06_Lv_Restart_F,
[Info] dw_06_Lv_Start_01,
[Info] dw_08_debug_Start_01,
[Info] dw_08_debug_Start_02,
[Info] dw_08_debug_Start_03,
[Info] dw_08_debug_Start_04,
// [Info] dw_08_Lv_Save_03,
[Info] dw_09_Lv_AutoSave_02,
[Info] dw_09_Lv_Retry_01,
[Info] dw_09_Lv_Save_01,
[Info] dw_09_Lv_skip_dw025,
[Info] dw_09_Lv_skip_dw026,
[Info] dw_09_Lv_Start_01,
[Info] dw_09_Lv_Start_02,
[Info] dw_10_Bt_Start_02,
[Info] dw_11_Lv_Start_01,
[Info] dw_12_Lv_Start_01,
[Info] dw_52_Lv_Start_01,
[Info] dw_53_Lv_Start_01,
[Info] dw_59_Lv_Start_01,
}
}
================================================
FILE: KHSave.Lib1/Attributes/ArmorGummiAttribute.cs
================================================
using KHSave.Attributes;
using System;
using System.Collections.Generic;
using System.Text;
namespace KHSave.Lib1.Attributes
{
public class ArmorGummiAttribute : GummiBlockAttribute
{
public ArmorGummiAttribute(string info, int sizeX, int sizeY, int sizeZ, int armor, int max,
int price = 0, int sell = 0, string description = null) : base(info, sizeX, sizeY, sizeZ,
armor, max, price, sell, description)
{
}
}
}
================================================
FILE: KHSave.Lib1/Attributes/BlueprintGummiAttribute.cs
================================================
using KHSave.Attributes;
using KHSave.Lib1.Types;
using System;
using System.Collections.Generic;
using System.Text;
namespace KHSave.Lib1.Attributes
{
public class BlueprintGummiAttribute : InfoAttribute
{
public GameTypes GameType { get; set; }
public BlueprintGummiAttribute(string info, GameTypes gameType) : base(info)
{
GameType = gameType;
}
}
}
================================================
FILE: KHSave.Lib1/Attributes/CockpitGummiAttribute.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace KHSave.Lib1.Attributes
{
public class CockpitGummiAttribute : GummiBlockAttribute
{
public CockpitGummiAttribute(string info, int sizeX, int sizeY, int sizeZ, int armor, int max,
int price = 0, int sell = 0, string description = null) : base(info, sizeX, sizeY, sizeZ,
armor, max, price, sell, description)
{
}
}
}
================================================
FILE: KHSave.Lib1/Attributes/EngineGummiAttribute.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace KHSave.Lib1.Attributes
{
public class EngineGummiAttribute : GummiBlockAttribute
{
public int TopSpeed { get; set; }
public int LowSpeed { get; set; }
public int Horsepower { get; set; }
public EngineGummiAttribute(string info, int sizeX, int sizeY, int sizeZ, int armor, int max, int topSpeed, int lowSpeed,
int horsepower, int price = 0, int sell = 0, string description = null) : base(info, sizeX, sizeY, sizeZ,
armor, max, price, sell, description)
{
TopSpeed = topSpeed;
LowSpeed = lowSpeed;
Horsepower = horsepower;
}
}
}
================================================
FILE: KHSave.Lib1/Attributes/ExtraGummiAttribute.cs
================================================
using KHSave.Attributes;
using System;
using System.Collections.Generic;
using System.Text;
namespace KHSave.Lib1.Attributes
{
public class ExtraGummiAttribute : InfoAttribute
{
public int Max { get; set; }
public int Price { get; set; }
public int Sell { get; set; }
public string Description { get; set; }
public ExtraGummiAttribute(string info, int max, int price = 0, int sell = 0, string description = null) : base(info)
{
Max = max;
Price = price;
Sell = sell;
Description = description;
}
}
}
================================================
FILE: KHSave.Lib1/Attributes/GummiBlockAttribute.cs
================================================
using KHSave.Attributes;
using System;
using System.Collections.Generic;
using System.Text;
namespace KHSave.Lib1.Attributes
{
public class GummiBlockAttribute : InfoAttribute
{
public int SizeX { get; set; }
public int SizeY { get; set; }
public int SizeZ { get; set; }
public int Armor { get; set; }
public int Max { get; set; }
public int Price { get; set; }
public int Sell { get; set; }
public string Description { get; set; }
public GummiBlockAttribute(string info, int sizeX, int sizeY, int sizeZ, int armor, int max,
int price = 0, int sell = 0, string description = null) : base(info)
{
SizeX = sizeX;
SizeY = sizeY;
SizeZ = sizeZ;
Armor = armor;
Max = max;
Price = price;
Sell = sell;
Description = description;
}
}
}
================================================
FILE: KHSave.Lib1/Attributes/SpecialGummiAttribute.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace KHSave.Lib1.Attributes
{
public class SpecialGummiAttribute : GummiBlockAttribute
{
public float EnergyUse { get; set; }
public SpecialGummiAttribute(string info, int sizeX, int sizeY, int sizeZ, int armor, int max, float energyUse,
int price = 0, int sell = 0, string description = null) : base(info, sizeX, sizeY, sizeZ,
armor, max, price, sell, description)
{
EnergyUse = energyUse;
}
}
}
================================================
FILE: KHSave.Lib1/Attributes/WeaponGummiAttribute.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace KHSave.Lib1.Attributes
{
public class WeaponGummiAttribute : GummiBlockAttribute
{
public int Power { get; set; }
public float PowerUse { get; set; }
public WeaponGummiAttribute(string info, int sizeX, int sizeY, int sizeZ, int armor, int max, int power, float powerUse,
int price = 0, int sell = 0, string description = null) : base(info, sizeX, sizeY, sizeZ,
armor, max, price, sell, description)
{
Power = power;
PowerUse = powerUse;
}
}
}
================================================
FILE: KHSave.Lib1/Attributes/WingGummiAttribute.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace KHSave.Lib1.Attributes
{
public class WingGummiAttribute : GummiBlockAttribute
{
public int Handling { get; set; }
public WingGummiAttribute(string info, int sizeX, int sizeY, int sizeZ, int armor, int max, int handling,
int price = 0, int sell = 0, string description = null) : base(info, sizeX, sizeY, sizeZ,
armor, max, price, sell, description)
{
Handling = handling;
}
}
}
================================================
FILE: KHSave.Lib1/Constants.cs
================================================
namespace KHSave.Lib1
{
public class Constants
{
public const uint MagicCodeFm = 0x05;
public const uint MagicCodeEverythingElse = 0x04;
}
}
================================================
FILE: KHSave.Lib1/ISaveKh1.cs
================================================
using KHSave.Lib1.Types;
using KHSave.Lib1.Models;
using System.IO;
namespace KHSave.Lib1
{
public interface ISaveKh1
{
bool IsFinalMix { get; }
uint MagicCode { get; set; }
byte[] SharedAbilities { get; }
CommandType ShortcutCircle { get; set; }
CommandType ShortcutTriangle { get; set; }
CommandType ShortcutSquare { get; set; }
uint Munny { get; set; }
byte Difficulty { get; set; }
PlayableCharacterType PlayableCharacter { get; set; }
PlayableCharacterType CompanionCharacter1 { get; set; }
PlayableCharacterType CompanionCharacter2 { get; set; }
PlayableCharacterType CompanionCharacter3 { get; set; }
byte[] InventoryCount { get; set; }
Character[] Characters { get; set; }
WorldType World { get; set; }
uint Room { get; set; }
uint SpawnLocation { get; set; }
void Write(Stream stream);
}
}
================================================
FILE: KHSave.Lib1/KHSave.Lib1.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Xe.BinaryMapper" Version="1.5.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\KHSave\KHSave.csproj" />
</ItemGroup>
</Project>
================================================
FILE: KHSave.Lib1/Models/Character.cs
================================================
using KHSave.Lib1.Types;
using Xe.BinaryMapper;
namespace KHSave.Lib1.Models
{
public class Character
{
[Data] public byte Level { get; set; }
[Data] public byte HpCur { get; set; }
[Data] public byte HpMax { get; set; }
[Data] public byte MpCur { get; set; }
[Data] public byte MpMax { get; set; }
[Data] public byte ApMax { get; set; }
[Data] public byte Strength { get; set; }
[Data] public byte Defense { get; set; }
[Data(Count = 16)] public byte[] Unk08 { get; set; }
[Data] public byte AccessoryCount { get; set; }
[Data(Count = 8)] public byte[] Accessories { get; set; }
[Data] public byte ItemCount { get; set; }
[Data(Count = 0xC)] public byte[] Items { get; set; }
[Data] public int Unk2e { get; set; }
[Data] public EquipmentType Weapon { get; set; }
[Data] public byte Unk33 { get; set; }
[Data] public byte Unk34 { get; set; }
[Data] public byte Unk35 { get; set; }
[Data] public byte Unk36 { get; set; }
[Data] public byte Unk37 { get; set; }
[Data] public int Unk38 { get; set; }
[Data] public int Experience { get; set; }
[Data(Count = 0x30)] public byte[] Abilities { get; set; }
[Data(0x70, BitIndex = 0)] public bool FireAvailable { get; set; }
[Data(0x70, BitIndex = 1)] public bool BlizzardAvailable { get; set; }
[Data(0x70, BitIndex = 2)] public bool ThunderAvailable { get; set; }
[Data(0x70, BitIndex = 3)] public bool CureAvailable { get; set; }
[Data(0x70, BitIndex = 4)] public bool GravityAvailable { get; set; }
[Data(0x70, BitIndex = 5)] public bool StopAvailable { get; set; }
[Data(0x70, BitIndex = 6)] public bool AeroAvailable { get; set; }
[Data(0x71)] public byte Unk71 { get; set; }
[Data(0x72)] public byte Unk72 { get; set; }
[Data(0x73)] public byte Unk73 { get; set; }
}
}
================================================
FILE: KHSave.Lib1/Models/GummiBlock.cs
================================================
using KHSave.Lib1.Types;
using System;
using Xe.BinaryMapper;
namespace KHSave.Lib1.Models
{
public class GummiBlock
{
//0xYX with Y and X having a value between 0-9, A-F will place the block outside the editor
[Data] public byte BlockPositionYX { get; set; }
//Range 0-9
[Data] public byte BlockPositionZ { get; set; }
[Data] public byte Unknown2 { get; set; }
[Data] public byte Unknown3 { get; set; }
[Data] public GummiBlocksType BlockID { get; set; }
[Data] public byte Unknown4 { get; set; }
[Data] public byte Unknown5 { get; set; }
[Data] public byte Unknown6 { get; set; }
[Data] public byte ColorID { get; set; }
[Data] public byte Unknown7 { get; set; }
[Data] public byte Unknown8 { get; set; }
[Data] public byte Unknown9 { get; set; }
}
}
================================================
FILE: KHSave.Lib1/Models/Gummiship.cs
================================================
using KHSave.Lib1.Types;
using System.Threading;
using Xe.BinaryMapper;
namespace KHSave.Lib1.Models
{
public class Gummiship
{
[Data] public byte BlocksUsed { get; set; }
//probably the other statistics
[Data(Count = 75)] public byte[] Unk01 { get; set; }
[Data(Count = 10)] public byte[] ShipName { get; set; }
[Data(Count = 22)] public byte[] Unk02 { get; set; }
[Data(Count = 200)] public GummiBlock[] GummiBlocks { get; set; }
[Data(Count = 1466)] public byte[] Unk03 { get; set; }
gitextract_6g8e8mkh/
├── .editorconfig
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug-report.md
│ │ ├── feature-request.md
│ │ ├── ff7r-missing-item-name-request.md
│ │ └── ff7r-teleport-coordinates-request.md
│ ├── dependabot.yml
│ └── workflows/
│ ├── format-code.yml
│ └── test.yml
├── .gitignore
├── .gitmodules
├── CNAME
├── KH3SaveEditor.sln
├── KHSave/
│ ├── Attributes/
│ │ ├── AbilityAttribute.cs
│ │ ├── AccessoryAttribute.cs
│ │ ├── ArmorAttribute.cs
│ │ ├── BoostAttribute.cs
│ │ ├── CombatStyleAttribute.cs
│ │ ├── CommandAttribute.cs
│ │ ├── ConsumableAttribute.cs
│ │ ├── FoodAttribute.cs
│ │ ├── FormAttribute.cs
│ │ ├── GummiBlockAttribute.cs
│ │ ├── InfoAttribute.cs
│ │ ├── IngredientAttribute.cs
│ │ ├── KeyItemAttribute.cs
│ │ ├── KeybladeAttribute.cs
│ │ ├── LinkAttribute.cs
│ │ ├── MagicAttribute.cs
│ │ ├── ManuscriptAttribute.cs
│ │ ├── MapAttribute.cs
│ │ ├── MapInfo.cs
│ │ ├── MateriaAttribute.cs
│ │ ├── MogItemAttribute.cs
│ │ ├── MoneyAttribute.cs
│ │ ├── RecipeAttribute.cs
│ │ ├── ReportAttribute.cs
│ │ ├── ShieldAttribute.cs
│ │ ├── SnackAttribute.cs
│ │ ├── StaffAttribute.cs
│ │ ├── SummonAttribute.cs
│ │ ├── SynthesisAttribute.cs
│ │ ├── TentAttribute.cs
│ │ ├── TrackAttribute.cs
│ │ ├── UnusedAttribute.cs
│ │ ├── WeaponAttribute.cs
│ │ └── WorldInfoAttribute.cs
│ ├── Extensions/
│ │ ├── AttributeExtensions.cs
│ │ ├── BitExtensions.cs
│ │ └── DateTimeExtensions.cs
│ ├── KHSave.csproj
│ ├── Services/
│ │ ├── CacheService.cs
│ │ └── TransferServiceLL.cs
│ └── StreamHelpers.cs
├── KHSave.Archives/
│ ├── ArchiveFactories.cs
│ ├── Factories/
│ │ ├── PcKh1Factory.cs
│ │ ├── PcKh2Factory.cs
│ │ ├── PcKhBbsFactory.cs
│ │ ├── PcKhDddFactory.cs
│ │ ├── PcKhRecomFactory.cs
│ │ ├── Ps2CbsFactory.cs
│ │ ├── Ps2PsuFactory.cs
│ │ ├── Ps3PsvFactory.cs
│ │ ├── Ps4Kh1Factory.cs
│ │ ├── Ps4Kh2Factory.cs
│ │ ├── Ps4KhDddFactory.cs
│ │ └── Ps4KhRecomFactory.cs
│ ├── IArchive.cs
│ ├── IArchiveEntry.cs
│ ├── IArchiveFactory.cs
│ ├── KHSave.Archives.csproj
│ ├── PcSaveArchive.cs
│ ├── Ps2CbsArchive.cs
│ ├── Ps2PsuArchive.cs
│ ├── Ps3PsvArchive.cs
│ └── Ps4SaveArchive.cs
├── KHSave.Lib02/
│ ├── KHSave.Lib02.csproj
│ ├── Models/
│ │ ├── Objective.cs
│ │ ├── PlayableCharacter.cs
│ │ └── Slot.cs
│ ├── SaveKh02.cs
│ └── Types/
│ ├── CommandType.cs
│ ├── DifficultyType.cs
│ ├── LocationType.cs
│ ├── MapType.cs
│ └── SpawnType.cs
├── KHSave.Lib1/
│ ├── Attributes/
│ │ ├── ArmorGummiAttribute.cs
│ │ ├── BlueprintGummiAttribute.cs
│ │ ├── CockpitGummiAttribute.cs
│ │ ├── EngineGummiAttribute.cs
│ │ ├── ExtraGummiAttribute.cs
│ │ ├── GummiBlockAttribute.cs
│ │ ├── SpecialGummiAttribute.cs
│ │ ├── WeaponGummiAttribute.cs
│ │ └── WingGummiAttribute.cs
│ ├── Constants.cs
│ ├── ISaveKh1.cs
│ ├── KHSave.Lib1.csproj
│ ├── Models/
│ │ ├── Character.cs
│ │ ├── GummiBlock.cs
│ │ └── Gummiship.cs
│ ├── SaveKh1.EU.cs
│ ├── SaveKh1.FinalMix.cs
│ ├── SaveKh1.cs
│ └── Types/
│ ├── AbilityType.cs
│ ├── CommandType.cs
│ ├── DifficultyType.cs
│ ├── EquipmentType.cs
│ ├── GameTypes.cs
│ ├── GummiBlocksType.cs
│ ├── PlayableCharacterType.cs
│ └── WorldType.cs
├── KHSave.Lib2/
│ ├── Constants.cs
│ ├── ISaveKh2.cs
│ ├── KHSave.Lib2.csproj
│ ├── Models/
│ │ ├── CharacterFinalMix.cs
│ │ ├── CharacterVanilla.cs
│ │ ├── DriveFormFinalMix.cs
│ │ ├── DriveFormVanilla.cs
│ │ ├── ICharacter.cs
│ │ ├── IDriveForm.cs
│ │ ├── IPlaceScript.cs
│ │ ├── PartyMembers.cs
│ │ ├── PlaceScriptFinalMix.cs
│ │ ├── PlaceScriptVanilla.cs
│ │ └── Progress.cs
│ ├── SaveKh2.European.cs
│ ├── SaveKh2.FinalMix.cs
│ ├── SaveKh2.TransferMappings.cs
│ ├── SaveKh2.cs
│ └── Types/
│ ├── AbilityStyleType.cs
│ ├── BattleStyleType.cs
│ ├── CharacterType.cs
│ ├── CommandType.cs
│ ├── DifficultyType.cs
│ ├── DriveFormType.cs
│ ├── EquipmentType.cs
│ ├── GameType.cs
│ ├── InventoryType.cs
│ ├── PlayableCharacterType.cs
│ └── WorldType.cs
├── KHSave.Lib3/
│ ├── ISaveKh3.cs
│ ├── KHSave.Lib3.csproj
│ ├── Models/
│ │ ├── Ability.cs
│ │ ├── AiModel.cs
│ │ ├── EquipmentItem.cs
│ │ ├── FlantasticRecord.cs
│ │ ├── InventoryEntry.cs
│ │ ├── MagicGroup.cs
│ │ ├── PhotoEntry.cs
│ │ ├── PlayableCharacter.cs
│ │ ├── Records.cs
│ │ └── ShortcutGroup.cs
│ ├── Presets/
│ │ ├── Preset.Pawn.cs
│ │ ├── Presets.Map.cs
│ │ └── Presets.Story.cs
│ ├── SaveKh3.cs
│ ├── SaveKh3u109.cs
│ └── Types/
│ ├── AbilityType.cs
│ ├── AccessoryType.cs
│ ├── AiAbilityType.cs
│ ├── AiCombatStyleType.cs
│ ├── AiRecoveryType.cs
│ ├── ArmorType.cs
│ ├── CharacterIconType.cs
│ ├── ChoiceType.cs
│ ├── CommandType.cs
│ ├── ConsumableType.cs
│ ├── DifficultyType.cs
│ ├── FoodType.cs
│ ├── InventoryType.cs
│ ├── ItemType.cs
│ ├── KeyItemType.cs
│ ├── LocationType.cs
│ ├── MaterialType.cs
│ ├── MogType.cs
│ ├── PartyCharacter.cs
│ ├── PlayableCharacterType.cs
│ ├── RecordAttractionType.cs
│ ├── RecordShotlockType.cs
│ ├── SnackType.cs
│ ├── StoryFlagType.cs
│ ├── StoryLabelType.cs
│ ├── SyntesisType.cs
│ ├── TentType.cs
│ ├── WeaponType.cs
│ └── WorldType.cs
├── KHSave.LibBbs/
│ ├── Attributes/
│ │ ├── AbilityAttribute.cs
│ │ ├── ActionAttribute.cs
│ │ ├── CommandAttribute.cs
│ │ └── CommandStyleAttribute.cs
│ ├── Constants.cs
│ ├── ISaveKhBbs.cs
│ ├── KHSave.LibBbs.csproj
│ ├── Models/
│ │ ├── Ability.cs
│ │ ├── Character.cs
│ │ ├── Command.cs
│ │ ├── Deck.cs
│ │ ├── Dlink.cs
│ │ └── Finisher.cs
│ ├── SaveKhBbs.European.cs
│ ├── SaveKhBbs.FinalMix.cs
│ ├── SaveKhBbs.cs
│ └── Types/
│ ├── AbilityType.cs
│ ├── CharacterType.cs
│ ├── CommandType.cs
│ ├── DifficultyType.cs
│ ├── WeaponType.cs
│ └── WorldType.cs
├── KHSave.LibDDD/
│ ├── Attributes/
│ │ ├── CommandAttributes.cs
│ │ ├── DreamPiecesAttribute.cs
│ │ ├── GlossaryAttribute.cs
│ │ ├── MementoEntriesAttribute.cs
│ │ ├── TrainingToysAttribute.cs
│ │ └── TrainingToysFoodAttribute.cs
│ ├── Constants.cs
│ ├── ISaveKhDDD.cs
│ ├── KHSave.LibDDD.csproj
│ ├── Model/
│ │ ├── CommandEntry.cs
│ │ ├── Deck.cs
│ │ ├── DeckPS4.cs
│ │ ├── DreamEater.cs
│ │ └── IDeck.cs
│ ├── SaveKhDDD.3DS.cs
│ ├── SaveKhDDD.PS4.cs
│ ├── SaveKhDDD.cs
│ └── Types/
│ ├── DifficultyType.cs
│ ├── DreamEaterType.cs
│ ├── EquipmentType.cs
│ └── WorldType.cs
├── KHSave.LibFf7Remake/
│ ├── Chunks/
│ │ ├── Chunk.cs
│ │ ├── ChunkChapter.cs
│ │ └── ChunkCommon.cs
│ ├── KHSave.LibFf7Remake.csproj
│ ├── Models/
│ │ ├── ChapterObject.cs
│ │ ├── Character.cs
│ │ ├── CharacterEquipment.cs
│ │ ├── CharacterStats.cs
│ │ ├── Inventory.cs
│ │ ├── Materia.cs
│ │ ├── MateriaEquipment.cs
│ │ ├── UnknownStructure.cs
│ │ ├── UnknownStructure2.cs
│ │ ├── UnknownStructure3.cs
│ │ ├── Vector3f.cs
│ │ └── WeaponFound.cs
│ ├── SaveFf7Remake.cs
│ └── Types/
│ ├── CharacterStatusType.cs
│ ├── CharacterType.cs
│ ├── InventoryType.cs
│ └── ItemCategory.cs
├── KHSave.LibPersona3/
│ ├── KHSave.LibPersona3.csproj
│ ├── Models/
│ │ ├── Character.cs
│ │ ├── Persona.cs
│ │ ├── SocialLinks.cs
│ │ └── SocialLinksPortable.cs
│ ├── Presets.cs
│ ├── SavePersona3.cs
│ └── Types/
│ ├── ArcanaType.cs
│ ├── Characters.cs
│ ├── Demon.cs
│ ├── ExpendableItems.cs
│ ├── Inventory.cs
│ └── Skill.cs
├── KHSave.LibPersona5/
│ ├── KHSave.LibPersona5.csproj
│ ├── Models/
│ │ ├── Character.cs
│ │ └── Persona.cs
│ ├── Persona5Royal.cs
│ ├── Persona5Vanilla.cs
│ ├── Presets.Items.cs
│ ├── Presets.Persona.cs
│ ├── Presets.cs
│ ├── Resources/
│ │ └── Persona5/
│ │ ├── Royal_AccessoryNames.txt
│ │ ├── Royal_ArmorNames.txt
│ │ ├── Royal_ConsumableItemNames.txt
│ │ ├── Royal_Demon.txt
│ │ ├── Royal_KeyItemNames.txt
│ │ ├── Royal_MaterialNames.txt
│ │ ├── Royal_MeleeWeaponNames.txt
│ │ ├── Royal_OutfitNames.txt
│ │ ├── Royal_RangedWeaponNames.txt
│ │ ├── Royal_SkillCardNames.txt
│ │ ├── Royal_SkillNames.txt
│ │ ├── Royal_Traits.txt
│ │ ├── Vanilla_AccessoryNames.txt
│ │ ├── Vanilla_ArmorNames.txt
│ │ ├── Vanilla_ConsumableItemNames.txt
│ │ ├── Vanilla_Demon.txt
│ │ ├── Vanilla_KeyItemNames.txt
│ │ ├── Vanilla_MaterialNames.txt
│ │ ├── Vanilla_MeleeWeaponNames.txt
│ │ ├── Vanilla_OutfitNames.txt
│ │ ├── Vanilla_RangedWeaponNames.txt
│ │ ├── Vanilla_SkillCardNames.txt
│ │ └── Vanilla_SkillNames.txt
│ ├── SavePersona5.cs
│ └── Types/
│ ├── ArcanaType.cs
│ ├── Characters.cs
│ ├── Demon.cs
│ ├── Equipment.cs
│ ├── Inventory.cs
│ ├── Skill.cs
│ ├── SkillRoyal.cs
│ └── Trait.cs
├── KHSave.LibRecom/
│ ├── Attributes/
│ │ ├── CardEnemyAttribute.cs
│ │ ├── CardFriendAttribute.cs
│ │ ├── CardItemAttribute.cs
│ │ ├── CardMagicAttribute.cs
│ │ ├── CardMapAttribute.cs
│ │ ├── CardSpecialAttribute.cs
│ │ ├── CardSummonAttribute.cs
│ │ ├── CardWeaponAttribute.cs
│ │ └── CardWorldAttribute.cs
│ ├── DataRecom.cs
│ ├── DataRecomMcWork.cs
│ ├── DataRecomTable0.cs
│ ├── DataRecomTable1.cs
│ ├── DataRecomTable2.cs
│ ├── KHSave.LibRecom.csproj
│ ├── Models/
│ │ ├── Card.cs
│ │ ├── CardFlags.cs
│ │ ├── CardModel.cs
│ │ ├── FriendsFlags.cs
│ │ ├── Kh2CardFlags.cs
│ │ ├── PoohFlags.cs
│ │ ├── SkillFlags.cs
│ │ ├── StoryFlag.cs
│ │ └── TutorialFlags.cs
│ ├── SaveKhRecom.cs
│ └── Types/
│ ├── CardType.cs
│ ├── Difficulty.cs
│ ├── PlayMode.cs
│ └── SoundMode.cs
├── KHSave.SaveEditor/
│ ├── App.config
│ ├── App.manifest
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Interfaces/
│ │ ├── IAlertMessage.cs
│ │ ├── IApplicationStartup.cs
│ │ ├── IFileDialogManager.cs
│ │ ├── IReporter.cs
│ │ ├── IUpdater.cs
│ │ └── IWindowManager.cs
│ ├── KHSave.SaveEditor.csproj
│ ├── Models/
│ │ ├── PatreonInfo.cs
│ │ ├── PatronModel.cs
│ │ ├── ServiceMessage.cs
│ │ └── SponsorshipInfo.cs
│ ├── Properties/
│ │ ├── Resources.Designer.cs
│ │ └── Resources.resx
│ ├── Services/
│ │ ├── AlertMessage.cs
│ │ ├── ContentFactory.cs
│ │ ├── DesktopAppIdentity.cs
│ │ ├── FileDialogManager.cs
│ │ ├── IAppIdentity.cs
│ │ ├── PatreonService.cs
│ │ ├── Pcsx2MemoryService.cs
│ │ ├── ReporterService.cs
│ │ ├── TransferService.cs
│ │ ├── UpdaterService.cs
│ │ └── WindowManager.cs
│ ├── StyledControls.xaml
│ ├── VersionCheck/
│ │ └── DesktopCheckCurrentVersion.cs
│ ├── ViewModels/
│ │ ├── HomeViewModel.cs
│ │ ├── MainWindowViewModel.cs
│ │ └── PatronViewModel.cs
│ ├── Views/
│ │ ├── AttachToPcsx2GameWindow.xaml
│ │ ├── AttachToPcsx2GameWindow.xaml.cs
│ │ ├── AttachToProcessWindow.xaml
│ │ ├── AttachToProcessWindow.xaml.cs
│ │ ├── HomeView.xaml
│ │ ├── HomeView.xaml.cs
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── PatronView.xaml
│ │ ├── PatronView.xaml.cs
│ │ ├── ServiceMessageView.xaml
│ │ ├── ServiceMessageView.xaml.cs
│ │ ├── UpdateWindow.xaml
│ │ └── UpdateWindow.xaml.cs
│ └── packages.config
├── KHSave.SaveEditor.Common/
│ ├── Contracts/
│ │ ├── IGetSave.cs
│ │ ├── IOpenStream.cs
│ │ ├── IRefreshUi.cs
│ │ └── IWriteToStream.cs
│ ├── Controls/
│ │ ├── ItemComboBox.xaml
│ │ ├── ItemComboBox.xaml.cs
│ │ └── TwoEqualColumnsStackPanel.cs
│ ├── Exceptions/
│ │ ├── ImageTooLargeException.cs
│ │ ├── SaveNotSupportedException.cs
│ │ └── VisualException.cs
│ ├── Global.cs
│ ├── KHSave.SaveEditor.Common.csproj
│ ├── Models/
│ │ ├── EnumIconTypeModel.cs
│ │ ├── GenericEntryModel.cs
│ │ ├── GenericEnumListModel.cs
│ │ ├── GenericListModel.cs
│ │ ├── ItemComboBoxModel.cs
│ │ └── KhEnumListModel.cs
│ ├── ProcessStream.cs
│ ├── Services/
│ │ ├── ArchiveWriteToStream.cs
│ │ ├── GenericEqualityComparer.cs
│ │ ├── IconService.cs
│ │ └── SearchEngine.cs
│ ├── ViewModels/
│ │ ├── ArchiveEntryViewModel.cs
│ │ └── ArchiveManagerViewModel.cs
│ └── Views/
│ ├── ArchiveManagerView.xaml
│ └── ArchiveManagerView.xaml.cs
├── KHSave.SaveEditor.Ff7Remake/
│ ├── Data/
│ │ ├── BgmPreset.cs
│ │ ├── ItemsPreset.cs
│ │ └── LocationsPreset.cs
│ ├── KHSave.SaveEditor.Ff7Remake.csproj
│ ├── KHSave.SaveEditor.Ff7Remake_x53vqark_wpftmp.csproj
│ ├── Models/
│ │ ├── BgmModel.cs
│ │ ├── ChapterCharacterEntryModel.cs
│ │ ├── ChapterEntryModel.cs
│ │ ├── ChapterObjectEntry.cs
│ │ ├── CharacterEntryModel.cs
│ │ ├── ChunkEntryModel.cs
│ │ ├── EquipmentEntryModel.cs
│ │ ├── InventroyEntryModel.cs
│ │ ├── ItemModel.cs
│ │ └── MateriaEntryModel.cs
│ ├── ViewModels/
│ │ ├── ChaptersViewModel.cs
│ │ ├── CharactersViewModel.cs
│ │ ├── DeveloperViewModel.cs
│ │ ├── EquipmentsViewModel.cs
│ │ ├── FF7RMainViewModel.cs
│ │ ├── GlobalViewModel.cs
│ │ ├── InventoryViewModel.cs
│ │ ├── MateriaViewModel.cs
│ │ ├── TeleportViewModel.cs
│ │ ├── Unknown1ViewModel.cs
│ │ ├── Unknown2ViewModel.cs
│ │ └── Unknown3ViewModel.cs
│ └── Views/
│ ├── ChapterEntryView.xaml
│ ├── ChapterEntryView.xaml.cs
│ ├── ChapterMainView.xaml
│ ├── ChapterMainView.xaml.cs
│ ├── ChapterObjectsView.xaml
│ ├── ChapterObjectsView.xaml.cs
│ ├── ChapterPlayableView.xaml
│ ├── ChapterPlayableView.xaml.cs
│ ├── ChaptersView.xaml
│ ├── ChaptersView.xaml.cs
│ ├── CharacterEntryView.xaml
│ ├── CharacterEntryView.xaml.cs
│ ├── CharactersView.xaml
│ ├── CharactersView.xaml.cs
│ ├── DeveloperView.xaml
│ ├── DeveloperView.xaml.cs
│ ├── EquipmentEntryView.xaml
│ ├── EquipmentEntryView.xaml.cs
│ ├── EquipmentsView.xaml
│ ├── EquipmentsView.xaml.cs
│ ├── FF7RMainView.xaml
│ ├── FF7RMainView.xaml.cs
│ ├── GlobalView.xaml
│ ├── GlobalView.xaml.cs
│ ├── InventoryEntryView.xaml
│ ├── InventoryEntryView.xaml.cs
│ ├── InventoryView.xaml
│ ├── InventoryView.xaml.cs
│ ├── MateriaEntryView.xaml
│ ├── MateriaEntryView.xaml.cs
│ ├── MateriaView.xaml
│ ├── MateriaView.xaml.cs
│ ├── PositionView.xaml
│ ├── PositionView.xaml.cs
│ ├── TeleportWindow.xaml
│ ├── TeleportWindow.xaml.cs
│ ├── Unknown1View.xaml
│ ├── Unknown1View.xaml.cs
│ ├── Unknown2View.xaml
│ ├── Unknown2View.xaml.cs
│ ├── Unknown3View.xaml
│ └── Unknown3View.xaml.cs
├── KHSave.SaveEditor.Kh02/
│ ├── KHSave.SaveEditor.Kh02.csproj
│ ├── MainView.xaml
│ ├── MainView.xaml.cs
│ ├── Models/
│ │ └── SlotListModel.cs
│ ├── ViewModels/
│ │ ├── GlobalSystemViewModel.cs
│ │ ├── Kh02ViewModel.cs
│ │ └── SlotViewModel.cs
│ └── Views/
│ ├── SystemView.xaml
│ └── SystemView.xaml.cs
├── KHSave.SaveEditor.Kh1/
│ ├── Interfaces/
│ │ └── IGetAbilities.cs
│ ├── KHSave.SaveEditor.Kh1.csproj
│ ├── MainView.xaml
│ ├── MainView.xaml.cs
│ ├── Models/
│ │ └── InventoryItemModel.cs
│ ├── Service/
│ │ ├── EquipmentManagerFactory.cs
│ │ └── IEquipmentManager.cs
│ ├── ViewModels/
│ │ ├── AbilityViewModel.cs
│ │ ├── EquipmentItemsViewModel.cs
│ │ ├── InventoryViewModel.cs
│ │ ├── Kh1ViewModel.cs
│ │ ├── PlayerViewModel.cs
│ │ ├── PlayersViewModel.cs
│ │ └── SystemViewModel.cs
│ └── Views/
│ ├── AbilityView.xaml
│ ├── AbilityView.xaml.cs
│ ├── InventoryView.xaml
│ ├── InventoryView.xaml.cs
│ ├── PlayerEquipmentView.xaml
│ ├── PlayerEquipmentView.xaml.cs
│ ├── PlayerView.xaml
│ ├── PlayerView.xaml.cs
│ ├── PlayersView.xaml
│ ├── PlayersView.xaml.cs
│ ├── SystemView.xaml
│ └── SystemView.xaml.cs
├── KHSave.SaveEditor.Kh2/
│ ├── Data/
│ │ └── Rooms.cs
│ ├── Interfaces/
│ │ └── IResourceGetter.cs
│ ├── KHSave.SaveEditor.Kh2.csproj
│ ├── MainView.xaml
│ ├── MainView.xaml.cs
│ ├── Models/
│ │ ├── AbilityModel.cs
│ │ ├── InventoryItemModel.cs
│ │ ├── MapScriptModel.cs
│ │ ├── ProgressModel.cs
│ │ └── RoomModel.cs
│ ├── Service/
│ │ ├── EquipmentManagerFactory.cs
│ │ └── IEquipmentManager.cs
│ ├── ViewModels/
│ │ ├── CharacterViewModel.cs
│ │ ├── CharactersViewModel.cs
│ │ ├── DriveFormsViewModel.cs
│ │ ├── EquipmentItemsViewModel.cs
│ │ ├── InventoryViewModel.cs
│ │ ├── Kh2ViewModel.cs
│ │ ├── ProgressViewModel.cs
│ │ ├── RoomViewModel.cs
│ │ ├── RoomVisitedViewModel.cs
│ │ ├── SystemViewModel.cs
│ │ └── WorldsViewModel.cs
│ └── Views/
│ ├── DriveFormView.xaml
│ ├── DriveFormView.xaml.cs
│ ├── DriveFormsView.xaml
│ ├── DriveFormsView.xaml.cs
│ ├── InventoryView.xaml
│ ├── InventoryView.xaml.cs
│ ├── PlayerEquipmentView.xaml
│ ├── PlayerEquipmentView.xaml.cs
│ ├── PlayerView.xaml
│ ├── PlayerView.xaml.cs
│ ├── PlayersView.xaml
│ ├── PlayersView.xaml.cs
│ ├── ProgressView.xaml
│ ├── ProgressView.xaml.cs
│ ├── RoomVisitedView.xaml
│ ├── RoomVisitedView.xaml.cs
│ ├── SystemView.xaml
│ ├── SystemView.xaml.cs
│ ├── WorldView.xaml
│ ├── WorldView.xaml.cs
│ ├── WorldsView.xaml
│ └── WorldsView.xaml.cs
├── KHSave.SaveEditor.Kh3/
│ ├── KHSave.SaveEditor.Kh3.csproj
│ ├── KHSave.SaveEditor.Kh3_kwhjhtac_wpftmp.csproj
│ ├── MainView.xaml
│ ├── MainView.xaml.cs
│ ├── Models/
│ │ ├── AttractionRecordItemModel.cs
│ │ ├── EquipmentItemEntryViewModel.cs
│ │ ├── FlantasticModel.cs
│ │ ├── InventoryItemViewModel.cs
│ │ ├── MapViewModel.cs
│ │ ├── MaterialModel.cs
│ │ ├── RecordAttractionListModel.cs
│ │ ├── RecordShotlockListModel.cs
│ │ ├── ShotlockRecordItemModel.cs
│ │ └── SpawnModel.cs
│ ├── ViewModels/
│ │ ├── AbilitiesViewModel.cs
│ │ ├── EquipmentItemsViewModel.cs
│ │ ├── InventoryViewModel.cs
│ │ ├── Kh3ViewModel.cs
│ │ ├── MaterialsViewModel.cs
│ │ ├── PartyViewModel.cs
│ │ ├── PhotoEntryViewModel.cs
│ │ ├── PhotosViewModel.cs
│ │ ├── PlayerViewModel.cs
│ │ ├── PlayersViewModel.cs
│ │ ├── RecordsViewModel.cs
│ │ ├── ShortcutsViewModel.cs
│ │ ├── StoryViewModel.cs
│ │ └── SystemViewModel.cs
│ └── Views/
│ ├── EquipmentItemEntryView.xaml
│ ├── EquipmentItemEntryView.xaml.cs
│ ├── EquipmentItemsView.xaml
│ ├── EquipmentItemsView.xaml.cs
│ ├── InventoryView.xaml
│ ├── InventoryView.xaml.cs
│ ├── MaterialsView.xaml
│ ├── MaterialsView.xaml.cs
│ ├── PartyView.xaml
│ ├── PartyView.xaml.cs
│ ├── PhotosView.xaml
│ ├── PhotosView.xaml.cs
│ ├── PlayerAbilityView.xaml
│ ├── PlayerAbilityView.xaml.cs
│ ├── PlayerEquipmentView.xaml
│ ├── PlayerEquipmentView.xaml.cs
│ ├── PlayerStatusView.xaml
│ ├── PlayerStatusView.xaml.cs
│ ├── PlayerView.xaml
│ ├── PlayerView.xaml.cs
│ ├── PlayersView.xaml
│ ├── PlayersView.xaml.cs
│ ├── RecordMinigamesView.xaml
│ ├── RecordMinigamesView.xaml.cs
│ ├── RecordsView.xaml
│ ├── RecordsView.xaml.cs
│ ├── ShortcutsView.xaml
│ ├── ShortcutsView.xaml.cs
│ ├── StoryView.xaml
│ ├── StoryView.xaml.cs
│ ├── SystemView.xaml
│ └── SystemView.xaml.cs
├── KHSave.SaveEditor.KhBbs/
│ ├── KHSave.SaveEditor.KhBbs.csproj
│ ├── MainView.xaml
│ ├── MainView.xaml.cs
│ ├── Models/
│ │ └── CommandListModel.cs
│ ├── ViewModels/
│ │ ├── CharacterViewModel.cs
│ │ ├── CommandListViewModel.cs
│ │ ├── CommandViewModel.cs
│ │ ├── DeckViewModel.cs
│ │ ├── DecksViewModel.cs
│ │ ├── KhBbsViewModel.cs
│ │ └── SystemViewModel.cs
│ └── Views/
│ ├── CharacterView.xaml
│ ├── CharacterView.xaml.cs
│ ├── CommandListView.xaml
│ ├── CommandListView.xaml.cs
│ ├── CommandView.xaml
│ ├── CommandView.xaml.cs
│ ├── DeckView.xaml
│ ├── DeckView.xaml.cs
│ ├── DecksView.xaml
│ ├── DecksView.xaml.cs
│ ├── SystemView.xaml
│ └── SystemView.xaml.cs
├── KHSave.SaveEditor.KhDDD/
│ ├── Interfaces/
│ │ └── IResourceGetter.cs
│ ├── KHSave.SaveEditor.KhDDD.csproj
│ ├── MainView.xaml
│ ├── MainView.xaml.cs
│ ├── ViewModels/
│ │ ├── CharacterViewModel.cs
│ │ ├── CommandsViewModel.cs
│ │ ├── DeckViewModel.cs
│ │ ├── DecksViewModel.cs
│ │ ├── DreamEaterViewModel.cs
│ │ ├── DreamEatersViewModel.cs
│ │ ├── KhDDDViewModel.cs
│ │ └── SystemViewModel.cs
│ └── Views/
│ ├── Character.xaml
│ ├── Character.xaml.cs
│ ├── CommandsView.xaml
│ ├── CommandsView.xaml.cs
│ ├── Deck.xaml
│ ├── Deck.xaml.cs
│ ├── Decks.xaml
│ ├── Decks.xaml.cs
│ ├── DreamEater.xaml
│ ├── DreamEater.xaml.cs
│ ├── DreamEaters.xaml
│ ├── DreamEaters.xaml.cs
│ ├── SystemView.xaml
│ └── SystemView.xaml.cs
├── KHSave.SaveEditor.KhRecom/
│ ├── Constants.cs
│ ├── Interfaces/
│ │ └── ICardCountService.cs
│ ├── KHSave.SaveEditor.KhRecom.csproj
│ ├── MainView.xaml
│ ├── MainView.xaml.cs
│ ├── Models/
│ │ └── CardIndex.cs
│ ├── ViewModels/
│ │ ├── CardInventoryEntryViewModel.cs
│ │ ├── CardInventoryViewModel.cs
│ │ ├── KhRecomViewModel.cs
│ │ ├── ProgressViewModel.cs
│ │ ├── SettingsViewModel.cs
│ │ └── SystemViewModel.cs
│ └── Views/
│ ├── CardInventoryEntryView.xaml
│ ├── CardInventoryEntryView.xaml.cs
│ ├── CardInventoryView.xaml
│ ├── CardInventoryView.xaml.cs
│ ├── ProgressView.xaml
│ ├── ProgressView.xaml.cs
│ ├── SettingsView.xaml
│ ├── SettingsView.xaml.cs
│ ├── SystemView.xaml
│ └── SystemView.xaml.cs
├── KHSave.SaveEditor.Persona3/
│ ├── Interfaces/
│ │ ├── IPersonaList.cs
│ │ └── ISkillList.cs
│ ├── KHSave.SaveEditor.Persona3.csproj
│ ├── Models/
│ │ ├── PersonaModel.cs
│ │ └── SkillModel.cs
│ ├── ViewModels/
│ │ ├── CompendiumViewModel.cs
│ │ ├── Persona3MainViewModel.cs
│ │ └── PersonaViewModel.cs
│ └── Views/
│ ├── CompendiumView.xaml
│ ├── CompendiumView.xaml.cs
│ ├── Persona3MainView.xaml
│ ├── Persona3MainView.xaml.cs
│ ├── PersonaView.xaml
│ └── PersonaView.xaml.cs
├── KHSave.SaveEditor.Persona5/
│ ├── Interfaces/
│ │ ├── IConsumableList.cs
│ │ ├── IEquipmentList.cs
│ │ ├── IPersonaList.cs
│ │ └── ISkillList.cs
│ ├── KHSave.SaveEditor.Persona5.csproj
│ ├── Models/
│ │ └── EquipmentModel.cs
│ ├── ViewModels/
│ │ ├── CharacterEntryViewModel.cs
│ │ ├── CharactersViewModel.cs
│ │ ├── CompendiumViewModel.cs
│ │ ├── InventoryViewModel.cs
│ │ ├── Persona5MainViewModel.cs
│ │ ├── PersonaEntryViewModel.cs
│ │ ├── PersonaViewModel.cs
│ │ ├── RoomViewModel.cs
│ │ ├── SkillViewModel.cs
│ │ └── SystemViewModel.cs
│ └── Views/
│ ├── CharacterView.xaml
│ ├── CharacterView.xaml.cs
│ ├── CharactersView.xaml
│ ├── CharactersView.xaml.cs
│ ├── CompendiumView.xaml
│ ├── CompendiumView.xaml.cs
│ ├── InventoryView.xaml
│ ├── InventoryView.xaml.cs
│ ├── Persona5MainView.xaml
│ ├── Persona5MainView.xaml.cs
│ ├── PersonaView.xaml
│ ├── PersonaView.xaml.cs
│ ├── SystemView.xaml
│ └── SystemView.xaml.cs
├── KHSave.Tests/
│ ├── Ff7RemakeTests.cs
│ ├── Helpers.cs
│ ├── KHSave.Tests.csproj
│ ├── Kh1Tests.cs
│ ├── Kh2Tests.cs
│ ├── Kh3Test.cs
│ ├── KhBbsTests.cs
│ ├── KhDDDTests.cs
│ ├── PcArchiveTests.cs
│ ├── Persona3Tests.cs
│ ├── Persona5Tests.cs
│ ├── Ps4SaveArchiveTests.cs
│ ├── RecomTests.cs
│ ├── Saves/
│ │ ├── BASLUS-21569Save2
│ │ ├── BASLUS-21799COM-02
│ │ ├── BISLPM-66676COM-01
│ │ ├── BISLPS-25198-05
│ │ ├── ff7remake000
│ │ ├── ff7remake007
│ │ └── kh02.sav
│ ├── TransferTests.cs
│ └── TrssvTest.cs
├── LICENSE
├── README.md
├── Tooling.MemoryWatcher/
│ ├── Configuration.cs
│ ├── ProcessStream.cs
│ ├── Program.cs
│ ├── Tooling.MemoryWatcher.csproj
│ └── config.yml
├── WindowsStoreSubmission/
│ ├── Package.appxmanifest
│ └── WindowsStoreSubmission.wapproj
├── _config.yml
├── assets/
│ ├── banner.psd
│ ├── banner_new.psd
│ ├── card.psd
│ ├── coin.psd
│ ├── icon-circular.psd
│ └── icon.psd
├── docs/
│ └── decryption.md
├── manifests/
│ └── x/
│ └── Xeeynamo/
│ └── KingdomSaveEditor/
│ └── 1.15.1/
│ └── Xeeynamo.KingdomSaveEditor.yml
└── resources/
├── ff7r-meta-bgm.yml
├── ff7r-meta-items.yml
└── ff7r-meta-locations.yml
SYMBOL INDEX (2032 symbols across 582 files)
FILE: KHSave.Archives/ArchiveFactories.cs
class ArchiveFactories (line 24) | public static class ArchiveFactories
method TryGetFactory (line 41) | public static bool TryGetFactory(Stream stream, out IArchiveFactory ar...
FILE: KHSave.Archives/Factories/PcKh1Factory.cs
class PcKh1Factory (line 5) | internal class PcKh1Factory : IArchiveFactory
method Create (line 15) | public IArchive Create() => new PcSaveArchive(EntryCount, Stride);
method CreateEntry (line 17) | public IArchiveEntry CreateEntry() => new PcSaveArchive.Entry();
method IsValid (line 19) | public bool IsValid(Stream stream) => stream.Length == Size;
method Read (line 21) | public IArchive Read(Stream stream)
FILE: KHSave.Archives/Factories/PcKh2Factory.cs
class PcKh2Factory (line 5) | internal class PcKh2Factory : IArchiveFactory
method Create (line 15) | public IArchive Create() => new PcSaveArchive(EntryCount, Stride);
method CreateEntry (line 17) | public IArchiveEntry CreateEntry() => new PcSaveArchive.Entry();
method IsValid (line 19) | public bool IsValid(Stream stream) => stream.Length == Size;
method Read (line 21) | public IArchive Read(Stream stream)
FILE: KHSave.Archives/Factories/PcKhBbsFactory.cs
class PcKhBbsactory (line 23) | public class PcKhBbsactory : IArchiveFactory
method Create (line 33) | public IArchive Create() =>
method Read (line 36) | public IArchive Read(Stream stream)
method IsValid (line 44) | public bool IsValid(Stream stream) => stream.Length == Size;
method CreateEntry (line 46) | public IArchiveEntry CreateEntry() => new PcSaveArchive.Entry();
FILE: KHSave.Archives/Factories/PcKhDddFactory.cs
class PcKhDddFactory (line 23) | public class PcKhDddFactory : IArchiveFactory
method Create (line 33) | public IArchive Create() =>
method Read (line 36) | public IArchive Read(Stream stream)
method IsValid (line 44) | public bool IsValid(Stream stream) => stream.Length == Size;
method CreateEntry (line 46) | public IArchiveEntry CreateEntry() => new PcSaveArchive.Entry();
FILE: KHSave.Archives/Factories/PcKhRecomFactory.cs
class PcKhRecomFactory (line 5) | internal class PcKhRecomFactory : IArchiveFactory
method Create (line 15) | public IArchive Create() => new PcSaveArchive(EntryCount, Stride);
method CreateEntry (line 17) | public IArchiveEntry CreateEntry() => new PcSaveArchive.Entry();
method IsValid (line 19) | public bool IsValid(Stream stream) => stream.Length == Size;
method Read (line 21) | public IArchive Read(Stream stream)
FILE: KHSave.Archives/Factories/Ps2CbsFactory.cs
class Ps2CbsFactory (line 10) | public class Ps2CbsFactory : IArchiveFactory
method Create (line 16) | public IArchive Create()
method CreateEntry (line 21) | public IArchiveEntry CreateEntry()
method IsValid (line 26) | public bool IsValid(Stream stream)
method Read (line 36) | public IArchive Read(Stream stream)
FILE: KHSave.Archives/Factories/Ps2PsuFactory.cs
class Ps2PsuFactory (line 10) | public class Ps2PsuFactory : IArchiveFactory
method Create (line 16) | public IArchive Create()
method CreateEntry (line 21) | public IArchiveEntry CreateEntry()
method IsValid (line 26) | public bool IsValid(Stream stream)
method Read (line 41) | public IArchive Read(Stream stream)
FILE: KHSave.Archives/Factories/Ps3PsvFactory.cs
class Ps3PsvFactory (line 6) | public class Ps3PsvFactory : IArchiveFactory
method Create (line 12) | public IArchive Create()
method CreateEntry (line 17) | public IArchiveEntry CreateEntry()
method IsValid (line 22) | public bool IsValid(Stream stream)
method Read (line 32) | public IArchive Read(Stream stream)
FILE: KHSave.Archives/Factories/Ps4Kh1Factory.cs
class Ps4Kh1Factory (line 23) | internal class Ps4Kh1Factory : IArchiveFactory
method Create (line 33) | public IArchive Create() =>
method Read (line 36) | public IArchive Read(Stream stream)
method IsValid (line 44) | public bool IsValid(Stream stream) => stream.Length == Size;
method CreateEntry (line 46) | public IArchiveEntry CreateEntry() => new Ps4SaveArchive.Entry();
FILE: KHSave.Archives/Factories/Ps4Kh2Factory.cs
class Ps4Kh2Factory (line 23) | internal class Ps4Kh2Factory : IArchiveFactory
method Create (line 33) | public IArchive Create() =>
method Read (line 36) | public IArchive Read(Stream stream)
method IsValid (line 44) | public bool IsValid(Stream stream) => stream.Length == Size;
method CreateEntry (line 46) | public IArchiveEntry CreateEntry() => new Ps4SaveArchive.Entry();
FILE: KHSave.Archives/Factories/Ps4KhDddFactory.cs
class Ps4KhDddFactory (line 23) | public class Ps4KhDddFactory : IArchiveFactory
method Create (line 33) | public IArchive Create() =>
method Read (line 36) | public IArchive Read(Stream stream)
method IsValid (line 44) | public bool IsValid(Stream stream) => stream.Length == Size;
method CreateEntry (line 46) | public IArchiveEntry CreateEntry() => new Ps4SaveArchive.Entry();
FILE: KHSave.Archives/Factories/Ps4KhRecomFactory.cs
class Ps4KhRecomFactory (line 23) | public class Ps4KhRecomFactory : IArchiveFactory
method Create (line 33) | public IArchive Create() =>
method Read (line 36) | public IArchive Read(Stream stream)
method IsValid (line 44) | public bool IsValid(Stream stream) => stream.Length == Size;
method CreateEntry (line 46) | public IArchiveEntry CreateEntry() => new Ps4SaveArchive.Entry();
FILE: KHSave.Archives/IArchive.cs
type IArchive (line 24) | public interface IArchive
method Write (line 32) | void Write(Stream stream);
FILE: KHSave.Archives/IArchiveEntry.cs
type IArchiveEntry (line 23) | public interface IArchiveEntry
FILE: KHSave.Archives/IArchiveFactory.cs
type IArchiveFactory (line 23) | public interface IArchiveFactory
method Create (line 29) | IArchive Create();
method Read (line 31) | IArchive Read(Stream stream);
method IsValid (line 33) | bool IsValid(Stream stream);
method CreateEntry (line 35) | IArchiveEntry CreateEntry();
FILE: KHSave.Archives/PcSaveArchive.cs
class PcSaveArchive (line 9) | internal class PcSaveArchive : IArchive
class Entry (line 11) | public class Entry : IArchiveEntry
method Map (line 29) | private static DateTime Map(int ticks) => new DateTime(ticks * TimeS...
method Map (line 30) | private static int Map(DateTime dateTime) => (int)((dateTime.Ticks -...
method PcSaveArchive (line 45) | internal PcSaveArchive(int entryCount, int stride)
method PcSaveArchive (line 53) | private PcSaveArchive(Stream stream, int entryCount, int stride)
method Write (line 93) | public void Write(Stream stream)
method Read (line 145) | public static PcSaveArchive Read(Stream stream, int entryCount, int st...
FILE: KHSave.Archives/Ps2CbsArchive.cs
class Ps2CbsArchive (line 11) | public class Ps2CbsArchive : IArchive
class Header (line 13) | private class Header
class Entry (line 29) | public class Entry : IArchiveEntry
method Map (line 44) | private static DateTime Map(sceMcStDateTime date) => new(date.Year, ...
method Ps2CbsArchive (line 47) | internal Ps2CbsArchive(int entryCount)
method Ps2CbsArchive (line 53) | private Ps2CbsArchive(Stream stream, int entryCount)
method Write (line 85) | public void Write(Stream stream)
method Read (line 90) | public static Ps2CbsArchive Read(Stream stream, int entryCount) =>
method Decompress (line 93) | private static byte[] Decompress(byte[] buffer, int length)
method rc4Crypt (line 104) | private static void rc4Crypt(byte[] buf, int bufLen)
FILE: KHSave.Archives/Ps2PsuArchive.cs
class Ps2PsuArchive (line 10) | public class Ps2PsuArchive : IArchive
class Entry (line 14) | public class Entry : IArchiveEntry
method Map (line 34) | private static DateTime Map(sceMcStDateTime date) => new(date.Year, ...
method Ps2PsuArchive (line 37) | internal Ps2PsuArchive(int entryCount)
method Ps2PsuArchive (line 43) | private Ps2PsuArchive(Stream stream, int entryCount)
method Write (line 70) | public void Write(Stream stream)
method Read (line 75) | public static Ps2PsuArchive Read(Stream stream, int entryCount) =>
class sceMcStDateTime (line 79) | public class sceMcStDateTime
FILE: KHSave.Archives/Ps3PsvArchive.cs
class Ps3PsvArchive (line 11) | public class Ps3PsvArchive : IArchive
class Header (line 13) | private class Header
class Ps2Header (line 23) | private class Ps2Header
class Ps2MainDirInfo (line 36) | private class Ps2MainDirInfo
class Ps2FileEntry (line 44) | private class Ps2FileEntry : IArchiveEntry
method Map (line 60) | private static DateTime Map(sceMcStDateTime date) => new(date.Year, ...
method Ps3PsvArchive (line 63) | internal Ps3PsvArchive()
method Ps3PsvArchive (line 68) | private Ps3PsvArchive(Stream stream)
method Write (line 102) | public void Write(Stream stream)
method Read (line 107) | public static Ps3PsvArchive Read(Stream stream) =>
FILE: KHSave.Archives/Ps4SaveArchive.cs
class Ps4SaveArchive (line 27) | internal class Ps4SaveArchive : IArchive
class Entry (line 31) | public class Entry : IArchiveEntry
method Map (line 48) | private static DateTime Map(int ticks) => new DateTime(ticks * TimeS...
method Map (line 49) | private static int Map(DateTime dateTime) => (int)((dateTime.Ticks -...
method Ps4SaveArchive (line 54) | internal Ps4SaveArchive(int entryCount, int stride)
method Ps4SaveArchive (line 61) | private Ps4SaveArchive(Stream stream, int entryCount, int stride)
method Write (line 86) | public void Write(Stream stream)
method Read (line 131) | public static Ps4SaveArchive Read(Stream stream, int entryCount, int s...
FILE: KHSave.Lib02/Models/Objective.cs
class Objective (line 23) | public class Objective
FILE: KHSave.Lib02/Models/PlayableCharacter.cs
class PlayableCharacter (line 23) | public class PlayableCharacter
FILE: KHSave.Lib02/Models/Slot.cs
class Slot (line 25) | public class Slot
FILE: KHSave.Lib02/SaveKh02.cs
class SaveKh02 (line 26) | public class SaveKh02
method IsValid (line 48) | public static bool IsValid(Stream stream)
method Write (line 57) | public void Write(Stream stream) => BinaryMapping.WriteObject(stream, ...
method Read (line 59) | public static SaveKh02 Read(Stream stream) => BinaryMapping.ReadObject...
FILE: KHSave.Lib02/Types/CommandType.cs
type CommandType (line 23) | public enum CommandType
FILE: KHSave.Lib02/Types/DifficultyType.cs
type DifficultyType (line 23) | public enum DifficultyType : byte
FILE: KHSave.Lib02/Types/LocationType.cs
type LocationType (line 23) | public enum LocationType : byte
FILE: KHSave.Lib02/Types/MapType.cs
type MapType (line 23) | public enum MapType
FILE: KHSave.Lib02/Types/SpawnType.cs
type SpawnType (line 23) | public enum SpawnType
FILE: KHSave.Lib1/Attributes/ArmorGummiAttribute.cs
class ArmorGummiAttribute (line 8) | public class ArmorGummiAttribute : GummiBlockAttribute
method ArmorGummiAttribute (line 10) | public ArmorGummiAttribute(string info, int sizeX, int sizeY, int size...
FILE: KHSave.Lib1/Attributes/BlueprintGummiAttribute.cs
class BlueprintGummiAttribute (line 9) | public class BlueprintGummiAttribute : InfoAttribute
method BlueprintGummiAttribute (line 12) | public BlueprintGummiAttribute(string info, GameTypes gameType) : base...
FILE: KHSave.Lib1/Attributes/CockpitGummiAttribute.cs
class CockpitGummiAttribute (line 7) | public class CockpitGummiAttribute : GummiBlockAttribute
method CockpitGummiAttribute (line 9) | public CockpitGummiAttribute(string info, int sizeX, int sizeY, int si...
FILE: KHSave.Lib1/Attributes/EngineGummiAttribute.cs
class EngineGummiAttribute (line 7) | public class EngineGummiAttribute : GummiBlockAttribute
method EngineGummiAttribute (line 13) | public EngineGummiAttribute(string info, int sizeX, int sizeY, int siz...
FILE: KHSave.Lib1/Attributes/ExtraGummiAttribute.cs
class ExtraGummiAttribute (line 8) | public class ExtraGummiAttribute : InfoAttribute
method ExtraGummiAttribute (line 15) | public ExtraGummiAttribute(string info, int max, int price = 0, int se...
FILE: KHSave.Lib1/Attributes/GummiBlockAttribute.cs
class GummiBlockAttribute (line 8) | public class GummiBlockAttribute : InfoAttribute
method GummiBlockAttribute (line 19) | public GummiBlockAttribute(string info, int sizeX, int sizeY, int size...
FILE: KHSave.Lib1/Attributes/SpecialGummiAttribute.cs
class SpecialGummiAttribute (line 7) | public class SpecialGummiAttribute : GummiBlockAttribute
method SpecialGummiAttribute (line 10) | public SpecialGummiAttribute(string info, int sizeX, int sizeY, int si...
FILE: KHSave.Lib1/Attributes/WeaponGummiAttribute.cs
class WeaponGummiAttribute (line 7) | public class WeaponGummiAttribute : GummiBlockAttribute
method WeaponGummiAttribute (line 11) | public WeaponGummiAttribute(string info, int sizeX, int sizeY, int siz...
FILE: KHSave.Lib1/Attributes/WingGummiAttribute.cs
class WingGummiAttribute (line 7) | public class WingGummiAttribute : GummiBlockAttribute
method WingGummiAttribute (line 10) | public WingGummiAttribute(string info, int sizeX, int sizeY, int sizeZ...
FILE: KHSave.Lib1/Constants.cs
class Constants (line 3) | public class Constants
FILE: KHSave.Lib1/ISaveKh1.cs
type ISaveKh1 (line 7) | public interface ISaveKh1
method Write (line 28) | void Write(Stream stream);
FILE: KHSave.Lib1/Models/Character.cs
class Character (line 6) | public class Character
FILE: KHSave.Lib1/Models/GummiBlock.cs
class GummiBlock (line 7) | public class GummiBlock
FILE: KHSave.Lib1/Models/Gummiship.cs
class Gummiship (line 7) | public class Gummiship
FILE: KHSave.Lib1/SaveKh1.EU.cs
class SaveKh1 (line 8) | public partial class SaveKh1
class SaveEU (line 10) | public class SaveEU : ISaveKh1
method Write (line 51) | public void Write(Stream stream) =>
FILE: KHSave.Lib1/SaveKh1.FinalMix.cs
class SaveKh1 (line 8) | public partial class SaveKh1
class SaveFinalMix (line 10) | public class SaveFinalMix : ISaveKh1
method Write (line 45) | public void Write(Stream stream) =>
FILE: KHSave.Lib1/SaveKh1.cs
class SaveKh1 (line 7) | public partial class SaveKh1
method SaveKh1 (line 12) | static SaveKh1()
method IsValid (line 23) | public static bool IsValid(Stream stream)
method GetGameVersion (line 39) | public static uint GetGameVersion(Stream stream)
method Read (line 52) | private static TSaveKh1 Read<TSaveKh1>(Stream stream)
method Read (line 56) | public static ISaveKh1 Read(Stream stream)
FILE: KHSave.Lib1/Types/AbilityType.cs
type AbilityType (line 6) | public enum AbilityType : byte
FILE: KHSave.Lib1/Types/CommandType.cs
type CommandType (line 5) | public enum CommandType : byte
FILE: KHSave.Lib1/Types/DifficultyType.cs
type Difficulty (line 5) | public enum Difficulty : byte
type DifficultyFm (line 10) | public enum DifficultyFm : byte
FILE: KHSave.Lib1/Types/EquipmentType.cs
type EquipmentType (line 6) | public enum EquipmentType : byte
FILE: KHSave.Lib1/Types/GameTypes.cs
type GameTypes (line 5) | [Flags]
FILE: KHSave.Lib1/Types/GummiBlocksType.cs
type GummiBlocksType (line 6) | public enum GummiBlocksType : byte
FILE: KHSave.Lib1/Types/PlayableCharacterType.cs
type PlayableCharacterType (line 5) | public enum PlayableCharacterType : byte
FILE: KHSave.Lib1/Types/WorldType.cs
type WorldType (line 5) | public enum WorldType : uint
FILE: KHSave.Lib2/Constants.cs
class Constants (line 9) | public class Constants
type GameVersion (line 1230) | public enum GameVersion
FILE: KHSave.Lib2/ISaveKh2.cs
type ISaveKh2 (line 7) | public interface ISaveKh2
method Write (line 62) | void Write(Stream stream);
FILE: KHSave.Lib2/Models/CharacterFinalMix.cs
class CharacterFinalMix (line 6) | public class CharacterFinalMix : ICharacter
FILE: KHSave.Lib2/Models/CharacterVanilla.cs
class CharacterVanilla (line 6) | public class CharacterVanilla : ICharacter
FILE: KHSave.Lib2/Models/DriveFormFinalMix.cs
class DriveFormFinalMix (line 6) | public class DriveFormFinalMix : IDriveForm
FILE: KHSave.Lib2/Models/DriveFormVanilla.cs
class DriveFormVanilla (line 6) | public class DriveFormVanilla : IDriveForm
FILE: KHSave.Lib2/Models/ICharacter.cs
type ICharacter (line 5) | public interface ICharacter
FILE: KHSave.Lib2/Models/IDriveForm.cs
type IDriveForm (line 5) | public interface IDriveForm
FILE: KHSave.Lib2/Models/IPlaceScript.cs
type IPlaceScript (line 3) | public interface IPlaceScript
FILE: KHSave.Lib2/Models/PartyMembers.cs
class PartyMembers (line 6) | public class PartyMembers
FILE: KHSave.Lib2/Models/PlaceScriptFinalMix.cs
class PlaceScriptFinalMix (line 5) | public class PlaceScriptFinalMix : IPlaceScript
FILE: KHSave.Lib2/Models/PlaceScriptVanilla.cs
class PlaceScriptVanilla (line 5) | public class PlaceScriptVanilla : IPlaceScript
FILE: KHSave.Lib2/Models/Progress.cs
class Progress (line 5) | public class Progress
method GetFlag (line 9) | public bool GetFlag(int index) => (Flags[index / 8] & (1 << (index % 8...
method SetFlag (line 10) | public void SetFlag(int index, bool value)
FILE: KHSave.Lib2/SaveKh2.European.cs
class SaveKh2 (line 9) | public partial class SaveKh2
class SaveEuropean (line 11) | public class SaveEuropean : ISaveKh2
method Write (line 69) | public void Write(Stream stream) =>
FILE: KHSave.Lib2/SaveKh2.FinalMix.cs
class SaveKh2 (line 9) | public partial class SaveKh2
class SaveFinalMix (line 11) | public class SaveFinalMix : ISaveKh2
method Write (line 97) | public void Write(Stream stream) =>
FILE: KHSave.Lib2/SaveKh2.TransferMappings.cs
class SaveKh2 (line 11) | public partial class SaveKh2
method CopySame (line 39) | private static void CopySame(IDriveForm[] dst, IDriveForm[] src)
method CopyFromVanilla (line 46) | private static void CopyFromVanilla(IDriveForm[] dst, IDriveForm[] src)
method CopyFromFinalMix (line 83) | private static void CopyFromFinalMix(IDriveForm[] dst, IDriveForm[] src)
FILE: KHSave.Lib2/SaveKh2.cs
class SaveKh2 (line 9) | public partial class SaveKh2
method SaveKh2 (line 13) | static SaveKh2()
method IsValid (line 24) | public static bool IsValid(Stream stream)
method GetGameVersion (line 41) | public static GameVersion? GetGameVersion(Stream stream)
method Read (line 62) | private static TSaveKh2 Read<TSaveKh2>(Stream stream)
method Read (line 66) | public static ISaveKh2 Read(Stream stream)
method Write (line 83) | public static void Write<TSaveKh2>(Stream stream, TSaveKh2 save)
method CalculateChecksum (line 106) | public static uint CalculateChecksum(byte[] data, int offset, uint che...
method GetCrcTable (line 114) | private static IEnumerable<uint> GetCrcTable(int polynomial)
FILE: KHSave.Lib2/Types/AbilityStyleType.cs
type AbilityStyleType (line 5) | public enum AbilityStyleType : byte
FILE: KHSave.Lib2/Types/BattleStyleType.cs
type BattleStyleType (line 5) | public enum BattleStyleType : byte
FILE: KHSave.Lib2/Types/CharacterType.cs
type CharacterType (line 5) | public enum CharacterType
FILE: KHSave.Lib2/Types/CommandType.cs
type CommandType (line 5) | public enum CommandType : short
FILE: KHSave.Lib2/Types/DifficultyType.cs
type Difficulty (line 5) | public enum Difficulty : byte
FILE: KHSave.Lib2/Types/DriveFormType.cs
type DriveFormType (line 3) | public enum DriveFormType
FILE: KHSave.Lib2/Types/EquipmentType.cs
type EquipmentType (line 5) | public enum EquipmentType : short
FILE: KHSave.Lib2/Types/GameType.cs
type GameType (line 5) | [Flags]
FILE: KHSave.Lib2/Types/InventoryType.cs
type InventoryType (line 23) | public enum InventoryType : int
FILE: KHSave.Lib2/Types/PlayableCharacterType.cs
type PlayableCharacterType (line 5) | public enum PlayableCharacterType : byte
FILE: KHSave.Lib2/Types/WorldType.cs
type WorldType (line 24) | public enum WorldType : byte
FILE: KHSave.Lib3/ISaveKh3.cs
type ISaveKh3 (line 27) | public interface ISaveKh3
method Write (line 83) | void Write(Stream stream);
FILE: KHSave.Lib3/Models/Ability.cs
class Ability (line 24) | public class Ability
method ToString (line 52) | public override string ToString()
FILE: KHSave.Lib3/Models/AiModel.cs
class AiModel (line 24) | public class AiModel
FILE: KHSave.Lib3/Models/EquipmentItem.cs
class EquipmentItem (line 24) | public class EquipmentItem
class WeaponEquipmentItem (line 32) | public class WeaponEquipmentItem : EquipmentItem
class ArmorEquipmentItem (line 41) | public class ArmorEquipmentItem : EquipmentItem
class AccessoryEquipmentItem (line 50) | public class AccessoryEquipmentItem : EquipmentItem
class ConsumableEquipmentItem (line 59) | public class ConsumableEquipmentItem : EquipmentItem
FILE: KHSave.Lib3/Models/FlantasticRecord.cs
class FlantasticRecord (line 5) | public class FlantasticRecord
FILE: KHSave.Lib3/Models/InventoryEntry.cs
class InventoryEntry (line 23) | public class InventoryEntry
FILE: KHSave.Lib3/Models/MagicGroup.cs
class MagicGroup (line 24) | public class MagicGroup
FILE: KHSave.Lib3/Models/PhotoEntry.cs
class PhotoEntry (line 23) | public class PhotoEntry
FILE: KHSave.Lib3/Models/PlayableCharacter.cs
class PlayableCharacter (line 24) | public class PlayableCharacter
method ToString (line 43) | public override string ToString()
FILE: KHSave.Lib3/Models/Records.cs
class Records (line 6) | public class Records
FILE: KHSave.Lib3/Models/ShortcutGroup.cs
class ShortcutGroup (line 24) | public class ShortcutGroup
FILE: KHSave.Lib3/Presets/Preset.Pawn.cs
class Presets (line 5) | public static partial class Presets
class Pawn (line 7) | public class Pawn
FILE: KHSave.Lib3/Presets/Presets.Map.cs
class Presets (line 5) | public static partial class Presets
class Map (line 7) | public class Map
FILE: KHSave.Lib3/Presets/Presets.Story.cs
class Presets (line 95) | public static partial class Presets
method ToStoryLabel (line 97) | private static Dictionary<int, string> ToStoryLabel<T>(this Dictionary...
FILE: KHSave.Lib3/SaveKh3.cs
class SaveKh3 (line 29) | public class SaveKh3 : ISaveKh3
method SaveKh3 (line 33) | static SaveKh3()
method IsValidInternal (line 94) | internal static bool IsValidInternal(Stream stream)
method Write (line 105) | public void Write(Stream stream)
method ReadInternal (line 116) | internal static SaveKh3 ReadInternal(Stream stream) =>
method IsValid (line 119) | public static bool IsValid(Stream stream) =>
method Read (line 123) | public static ISaveKh3 Read(Stream stream)
method CalculateChecksum (line 133) | public static uint CalculateChecksum(Stream stream)
FILE: KHSave.Lib3/SaveKh3u109.cs
class SaveKh3u109 (line 28) | public class SaveKh3u109 : ISaveKh3
method IsValidInternal (line 84) | internal static bool IsValidInternal(Stream stream)
method Write (line 95) | public void Write(Stream stream)
method ReadInternal (line 106) | internal static SaveKh3u109 ReadInternal(Stream stream) =>
FILE: KHSave.Lib3/Types/AbilityType.cs
type AbilityType (line 23) | public enum AbilityType
FILE: KHSave.Lib3/Types/AccessoryType.cs
type AccessoryType (line 23) | public enum AccessoryType : byte
FILE: KHSave.Lib3/Types/AiAbilityType.cs
type AiAbilityType (line 23) | public enum AiAbilityType : byte
FILE: KHSave.Lib3/Types/AiCombatStyleType.cs
type AiCombatStyleType (line 23) | public enum AiCombatStyleType : byte
FILE: KHSave.Lib3/Types/AiRecoveryType.cs
type AiRecoveryType (line 23) | public enum AiRecoveryType : byte
FILE: KHSave.Lib3/Types/ArmorType.cs
type ArmorType (line 23) | public enum ArmorType : byte
FILE: KHSave.Lib3/Types/CharacterIconType.cs
type CharacterIconType (line 23) | public enum CharacterIconType : byte
FILE: KHSave.Lib3/Types/ChoiceType.cs
type DesireChoice (line 23) | public enum DesireChoice : byte
type PowerChoice (line 30) | public enum PowerChoice : byte
FILE: KHSave.Lib3/Types/CommandType.cs
type CommandType (line 23) | public enum CommandType : int
FILE: KHSave.Lib3/Types/ConsumableType.cs
type ConsumableType (line 23) | public enum ConsumableType : byte
FILE: KHSave.Lib3/Types/DifficultyType.cs
type DifficultyType (line 23) | public enum DifficultyType : byte
FILE: KHSave.Lib3/Types/FoodType.cs
type FoodType (line 23) | public enum FoodType : byte
FILE: KHSave.Lib3/Types/InventoryType.cs
type InventoryType (line 23) | public enum InventoryType
FILE: KHSave.Lib3/Types/ItemType.cs
type ItemType (line 23) | public enum ItemType : byte
FILE: KHSave.Lib3/Types/KeyItemType.cs
type KeyItemType (line 23) | public enum KeyItemType : byte
FILE: KHSave.Lib3/Types/LocationType.cs
type LocationType (line 23) | public enum LocationType : byte
FILE: KHSave.Lib3/Types/MaterialType.cs
type MaterialType (line 23) | public enum MaterialType
FILE: KHSave.Lib3/Types/MogType.cs
type MogType (line 23) | public enum MogType : byte
FILE: KHSave.Lib3/Types/PartyCharacter.cs
type PartyCharacter (line 5) | public enum PartyCharacter : byte
FILE: KHSave.Lib3/Types/PlayableCharacterType.cs
type PlayableCharacterType (line 21) | public enum PlayableCharacterType
FILE: KHSave.Lib3/Types/RecordAttractionType.cs
type RecordAttractionType (line 23) | public enum RecordAttractionType
FILE: KHSave.Lib3/Types/RecordShotlockType.cs
type RecordShotlockType (line 23) | public enum RecordShotlockType
FILE: KHSave.Lib3/Types/SnackType.cs
type SnackType (line 23) | public enum SnackType : byte
FILE: KHSave.Lib3/Types/StoryFlagType.cs
type StoryFlagType (line 23) | public enum StoryFlagType
FILE: KHSave.Lib3/Types/StoryLabelType.cs
type StoryLabelTypeBt (line 21) | public enum StoryLabelTypeBt
type StoryLabelTypeBx (line 47) | public enum StoryLabelTypeBx
type StoryLabelTypeCa (line 89) | public enum StoryLabelTypeCa
type StoryLabelTypeCaChartLastAccess (line 132) | public enum StoryLabelTypeCaChartLastAccess
type StoryLabelTypeCaShipRide (line 149) | public enum StoryLabelTypeCaShipRide
type StoryLabelTypeCaPortroyalSearch (line 155) | public enum StoryLabelTypeCaPortroyalSearch
type StoryLabelTypeCs (line 164) | public enum StoryLabelTypeCs
type StoryLabelTypeDi (line 181) | public enum StoryLabelTypeDi
type StoryLabelTypeDp (line 191) | public enum StoryLabelTypeDp
type StoryLabelTypeDw (line 204) | public enum StoryLabelTypeDw
type StoryLabelTypeEw (line 221) | public enum StoryLabelTypeEw
type StoryLabelTypeEx (line 239) | public enum StoryLabelTypeEx
type StoryLabelTypeEwSub (line 242) | public enum StoryLabelTypeEwSub
type StoryLabelTypeEwMission (line 251) | public enum StoryLabelTypeEwMission
type StoryLabelTypeEwRa (line 269) | public enum StoryLabelTypeEwRa
type StoryLabelTypeEwMi (line 278) | public enum StoryLabelTypeEwMi
type StoryLabelTypeEwTs (line 287) | public enum StoryLabelTypeEwTs
type StoryLabelTypeEwCa (line 296) | public enum StoryLabelTypeEwCa
type StoryLabelTypeEwFz (line 305) | public enum StoryLabelTypeEwFz
type StoryLabelTypeFz (line 314) | public enum StoryLabelTypeFz
type StoryLabelTypeFzMinigame (line 365) | public enum StoryLabelTypeFzMinigame
type StoryLabelTypeGm (line 375) | public enum StoryLabelTypeGm
type StoryLabelTypeGm1 (line 388) | public enum StoryLabelTypeGm1
type StoryLabelTypeGm2 (line 394) | public enum StoryLabelTypeGm2
type StoryLabelTypeGm3 (line 400) | public enum StoryLabelTypeGm3
type StoryLabelTypeGm3sub (line 410) | public enum StoryLabelTypeGm3sub
type StoryLabelTypeGmSys (line 422) | public enum StoryLabelTypeGmSys
type StoryLabelTypeGmLevelUp (line 434) | public enum StoryLabelTypeGmLevelUp
type StoryLabelTypeHe (line 440) | public enum StoryLabelTypeHe
type StoryLabelTypeHeSub (line 494) | public enum StoryLabelTypeHeSub
type StoryLabelTypeKg (line 506) | public enum StoryLabelTypeKg
type StoryLabelTypeKgA (line 542) | public enum StoryLabelTypeKgA
type StoryLabelTypeKgB (line 555) | public enum StoryLabelTypeKgB
type StoryLabelTypeKgC (line 570) | public enum StoryLabelTypeKgC
type StoryLabelTypeKgD (line 581) | public enum StoryLabelTypeKgD
type StoryLabelTypeMi (line 592) | public enum StoryLabelTypeMi
type StoryLabelTypeMiSub (line 646) | public enum StoryLabelTypeMiSub
type StoryLabelTypePo (line 649) | public enum StoryLabelTypePo
type StoryLabelTypeRa (line 662) | public enum StoryLabelTypeRa
type StoryLabelTypeRaDandelion (line 709) | public enum StoryLabelTypeRaDandelion
type StoryLabelTypeRaRabbit (line 716) | public enum StoryLabelTypeRaRabbit
type StoryLabelTypeRaRainbow (line 724) | public enum StoryLabelTypeRaRainbow
type StoryLabelTypeRaBird (line 731) | public enum StoryLabelTypeRaBird
type StoryLabelTypeRg (line 738) | public enum StoryLabelTypeRg
type StoryLabelTypeSf (line 748) | public enum StoryLabelTypeSf
type StoryLabelTypeTs (line 756) | public enum StoryLabelTypeTs
type StoryLabelTypeTsSub (line 794) | public enum StoryLabelTypeTsSub
type StoryLabelTypeTt (line 807) | public enum StoryLabelTypeTt
type StoryLabelTypeTtPo (line 829) | public enum StoryLabelTypeTtPo
type StoryLabelTypeTtRemy (line 837) | public enum StoryLabelTypeTtRemy
type StoryLabelTypeWmHe (line 842) | public enum StoryLabelTypeWmHe
type StoryLabelTypeWmTt (line 849) | public enum StoryLabelTypeWmTt
type StoryLabelTypeWmRa (line 856) | public enum StoryLabelTypeWmRa
type StoryLabelTypeWmTs (line 863) | public enum StoryLabelTypeWmTs
type StoryLabelTypeWmMi (line 870) | public enum StoryLabelTypeWmMi
type StoryLabelTypeWmFz (line 877) | public enum StoryLabelTypeWmFz
type StoryLabelTypeWmCa (line 884) | public enum StoryLabelTypeWmCa
type StoryLabelTypeWmBx (line 891) | public enum StoryLabelTypeWmBx
type StoryLabelTypeWmKg (line 898) | public enum StoryLabelTypeWmKg
type StoryLabelTypeGameBattle (line 905) | public enum StoryLabelTypeGameBattle
type StoryLabelTypeGameShop (line 918) | public enum StoryLabelTypeGameShop
type StoryLabelTypeYt (line 930) | public enum StoryLabelTypeYt
type StoryLabelTypeBtDlc8 (line 941) | public enum StoryLabelTypeBtDlc8
type StoryLabelTypeBtDlc7 (line 954) | public enum StoryLabelTypeBtDlc7
type StoryLabelTypeBtDlc7Monument (line 963) | public enum StoryLabelTypeBtDlc7Monument
type StoryLabelTypeKgDlc (line 971) | public enum StoryLabelTypeKgDlc
type StoryLabelTypeKgDlc5c (line 996) | public enum StoryLabelTypeKgDlc5c
type StoryLabelTypeKgDlc5d (line 1008) | public enum StoryLabelTypeKgDlc5d
type StoryLabelTypeKgDlcCharSelect (line 1022) | public enum StoryLabelTypeKgDlcCharSelect
type StoryLabelTypeRgDlc (line 1036) | public enum StoryLabelTypeRgDlc
type StoryLabelTypeSsDlc (line 1049) | public enum StoryLabelTypeSsDlc
type StoryLabelTypeSsDlcSub (line 1057) | public enum StoryLabelTypeSsDlcSub
FILE: KHSave.Lib3/Types/SyntesisType.cs
type SynthesisType (line 23) | public enum SynthesisType : byte
FILE: KHSave.Lib3/Types/TentType.cs
type TentType (line 23) | public enum TentType : byte
FILE: KHSave.Lib3/Types/WeaponType.cs
type WeaponType (line 23) | public enum WeaponType : byte
FILE: KHSave.Lib3/Types/WorldType.cs
type WorldType (line 23) | public enum WorldType : byte
FILE: KHSave.LibBbs/Attributes/AbilityAttribute.cs
class AbilityStatusAttribute (line 5) | public class AbilityStatusAttribute : AbilityAttribute
method AbilityStatusAttribute (line 7) | public AbilityStatusAttribute(string name = null) : base(name)
class AbilityPriceAttribute (line 12) | public class AbilityPriceAttribute : AbilityAttribute
method AbilityPriceAttribute (line 14) | public AbilityPriceAttribute(string name = null) : base(name)
FILE: KHSave.LibBbs/Attributes/ActionAttribute.cs
class MovementAttribute (line 5) | public class MovementAttribute : InfoAttribute
method MovementAttribute (line 7) | public MovementAttribute(string name = null) : base(name)
class DefenseAttribute (line 12) | public class DefenseAttribute : InfoAttribute
method DefenseAttribute (line 14) | public DefenseAttribute(string name = null) : base(name)
class ReprisalAttribute (line 19) | public class ReprisalAttribute : InfoAttribute
method ReprisalAttribute (line 21) | public ReprisalAttribute(string name = null) : base(name)
FILE: KHSave.LibBbs/Attributes/CommandAttribute.cs
class AttackAttribute (line 5) | public class AttackAttribute : InfoAttribute
method AttackAttribute (line 7) | public AttackAttribute(string name = null) : base(name)
class FinisherAttribute (line 12) | public class FinisherAttribute : InfoAttribute
method FinisherAttribute (line 14) | public FinisherAttribute(string name = null) : base(name)
class ShotlockAttribute (line 19) | public class ShotlockAttribute : InfoAttribute
method ShotlockAttribute (line 21) | public ShotlockAttribute(string name = null) : base(name)
class DlinkAttribute (line 26) | public class DlinkAttribute : InfoAttribute
method DlinkAttribute (line 28) | public DlinkAttribute(string name = null) : base(name)
class FriendshipAttribute (line 33) | public class FriendshipAttribute : InfoAttribute
method FriendshipAttribute (line 35) | public FriendshipAttribute(string name = null) : base(name)
FILE: KHSave.LibBbs/Attributes/CommandStyleAttribute.cs
class CommandStyleLevel1Attribute (line 5) | public class CommandStyleLevel1Attribute : InfoAttribute
method CommandStyleLevel1Attribute (line 7) | public CommandStyleLevel1Attribute(string name = null) : base(name)
class CommandStyleLevel2Attribute (line 12) | public class CommandStyleLevel2Attribute : InfoAttribute
method CommandStyleLevel2Attribute (line 14) | public CommandStyleLevel2Attribute(string name = null) : base(name)
class CommandStyleOtherAttribute (line 19) | public class CommandStyleOtherAttribute : InfoAttribute
method CommandStyleOtherAttribute (line 21) | public CommandStyleOtherAttribute(string name = null) : base(name)
FILE: KHSave.LibBbs/Constants.cs
class Constants (line 3) | internal class Constants
type GameVersion (line 8) | public enum GameVersion
FILE: KHSave.LibBbs/ISaveKhBbs.cs
type ISaveKhBbs (line 6) | public interface ISaveKhBbs
FILE: KHSave.LibBbs/Models/Ability.cs
class Ability (line 5) | public class Ability
FILE: KHSave.LibBbs/Models/Character.cs
class Character (line 6) | public class Character
FILE: KHSave.LibBbs/Models/Command.cs
class Command (line 6) | public class Command
FILE: KHSave.LibBbs/Models/Deck.cs
class Deck (line 5) | public class Deck
class Command (line 14) | public class Command
FILE: KHSave.LibBbs/Models/Dlink.cs
class Dlink (line 6) | public class Dlink
FILE: KHSave.LibBbs/Models/Finisher.cs
class Finisher (line 6) | public class Finisher
FILE: KHSave.LibBbs/SaveKhBbs.European.cs
class SaveKhBbs (line 7) | public partial class SaveKhBbs
class SaveEuropean (line 9) | public class SaveEuropean : ISaveKhBbs
FILE: KHSave.LibBbs/SaveKhBbs.FinalMix.cs
class SaveKhBbs (line 7) | public partial class SaveKhBbs
class SaveFinalMix (line 9) | public class SaveFinalMix : ISaveKhBbs
FILE: KHSave.LibBbs/SaveKhBbs.cs
class SaveKhBbs (line 6) | public partial class SaveKhBbs
method IsValid (line 8) | public static bool IsValid(Stream stream)
method GetGameVersion (line 17) | public static GameVersion? GetGameVersion(Stream stream)
method Read (line 38) | public static TSaveKhBbs Read<TSaveKhBbs>(Stream stream)
method Write (line 42) | public static void Write<TSaveKhBbs>(Stream stream, TSaveKhBbs save)
method CalculateChecksum (line 57) | public static uint CalculateChecksum(Stream stream)
FILE: KHSave.LibBbs/Types/AbilityType.cs
type AbilityType (line 6) | public enum AbilityType : ushort
FILE: KHSave.LibBbs/Types/CharacterType.cs
type CharacterType (line 5) | public enum CharacterType : byte
FILE: KHSave.LibBbs/Types/CommandType.cs
type CommandType (line 6) | public enum CommandType : ushort
FILE: KHSave.LibBbs/Types/DifficultyType.cs
type DifficultyType (line 5) | public enum DifficultyType : byte
FILE: KHSave.LibBbs/Types/WeaponType.cs
type WeaponType (line 5) | public enum WeaponType : ushort
FILE: KHSave.LibBbs/Types/WorldType.cs
type WorldType (line 6) | public enum WorldType : byte
FILE: KHSave.LibDDD/Attributes/CommandAttributes.cs
class AttackAttribute (line 5) | public class AttackAttribute : InfoAttribute
method AttackAttribute (line 7) | public AttackAttribute(string name = null) : base(name)
class MovementAttribute (line 12) | public class MovementAttribute : InfoAttribute
method MovementAttribute (line 14) | public MovementAttribute(string name = null) : base(name)
class DefenseAttribute (line 19) | public class DefenseAttribute : InfoAttribute
method DefenseAttribute (line 21) | public DefenseAttribute(string name = null) : base(name)
class ReprisalAttribute (line 26) | public class ReprisalAttribute : InfoAttribute
method ReprisalAttribute (line 28) | public ReprisalAttribute(string name = null) : base(name)
class FlowMotionAttribute (line 33) | public class FlowMotionAttribute : InfoAttribute
method FlowMotionAttribute (line 35) | public FlowMotionAttribute(string name = null) : base(name)
class AbilityStatsAttribute (line 40) | public class AbilityStatsAttribute : InfoAttribute
method AbilityStatsAttribute (line 42) | public AbilityStatsAttribute(string name = null) : base(name)
class AbilitySpiritsAttribute (line 47) | public class AbilitySpiritsAttribute : InfoAttribute
method AbilitySpiritsAttribute (line 49) | public AbilitySpiritsAttribute(string name = null) : base(name)
FILE: KHSave.LibDDD/Attributes/DreamPiecesAttribute.cs
class DreamPiecesAttribute (line 5) | public class DreamPiecesAttribute : InfoAttribute
method DreamPiecesAttribute (line 7) | public DreamPiecesAttribute(string info) : base(info)
FILE: KHSave.LibDDD/Attributes/GlossaryAttribute.cs
class GlossaryAttribute (line 5) | public class GlossaryAttribute : InfoAttribute
method GlossaryAttribute (line 7) | public GlossaryAttribute(string info) : base(info)
FILE: KHSave.LibDDD/Attributes/MementoEntriesAttribute.cs
class MementoEntriesAttribute (line 5) | public class MementoEntriesAttribute : InfoAttribute
method MementoEntriesAttribute (line 7) | public MementoEntriesAttribute(string info) : base(info)
FILE: KHSave.LibDDD/Attributes/TrainingToysAttribute.cs
class TrainingToysAttribute (line 5) | public class TrainingToysAttribute : InfoAttribute
method TrainingToysAttribute (line 7) | public TrainingToysAttribute(string info) : base(info)
class TrainingFoodAttribute (line 11) | public class TrainingFoodAttribute : InfoAttribute
method TrainingFoodAttribute (line 13) | public TrainingFoodAttribute(string info) : base(info)
FILE: KHSave.LibDDD/Attributes/TrainingToysFoodAttribute.cs
class TrainingToysFoodAttribute (line 5) | public class TrainingToysFoodAttribute : InfoAttribute
method TrainingToysFoodAttribute (line 7) | public TrainingToysFoodAttribute(string info) : base(info)
FILE: KHSave.LibDDD/Constants.cs
class Constants (line 3) | class Constants
FILE: KHSave.LibDDD/ISaveKhDDD.cs
type ISaveKhDDD (line 8) | public interface ISaveKhDDD
method Write (line 32) | void Write(Stream stream);
FILE: KHSave.LibDDD/Model/CommandEntry.cs
class CommandEntry (line 6) | public class CommandEntry
FILE: KHSave.LibDDD/Model/Deck.cs
class Deck (line 5) | public class Deck : IDeck
FILE: KHSave.LibDDD/Model/DeckPS4.cs
class DeckPS4 (line 5) | public class DeckPS4 : IDeck
FILE: KHSave.LibDDD/Model/DreamEater.cs
class DreamEater (line 6) | public class DreamEater
FILE: KHSave.LibDDD/Model/IDeck.cs
type IDeck (line 9) | public interface IDeck
FILE: KHSave.LibDDD/SaveKhDDD.3DS.cs
class SaveKhDDD (line 12) | public partial class SaveKhDDD
class SaveKhDDD3DS (line 14) | public class SaveKhDDD3DS : ISaveKhDDD
method Write (line 49) | public void Write(Stream stream) =>
FILE: KHSave.LibDDD/SaveKhDDD.PS4.cs
class SaveKhDDD (line 9) | public partial class SaveKhDDD
class SaveKhDDDPS4 (line 11) | public class SaveKhDDDPS4 : ISaveKhDDD
method Write (line 45) | public void Write(Stream stream) =>
FILE: KHSave.LibDDD/SaveKhDDD.cs
class SaveKhDDD (line 7) | public partial class SaveKhDDD
method IsValid (line 11) | public static bool IsValid(Stream stream)
method GetGameVersion (line 26) | public static uint GetGameVersion(Stream stream)
method GetFileVersion (line 40) | public static byte GetFileVersion(Stream stream)
method Read (line 50) | public static TSaveKhDDD Read<TSaveKhDDD>(Stream stream)
method Read (line 54) | public static ISaveKhDDD Read(Stream stream)
method ReadVersion (line 65) | public static ISaveKhDDD ReadVersion(Stream stream)
method Write (line 80) | public static void Write<TSaveKhDDD>(Stream stream, TSaveKhDDD save)
FILE: KHSave.LibDDD/Types/DifficultyType.cs
type DifficultyType (line 5) | public enum DifficultyType : byte
FILE: KHSave.LibDDD/Types/DreamEaterType.cs
type DreamEaterType (line 5) | public enum DreamEaterType : byte
FILE: KHSave.LibDDD/Types/EquipmentType.cs
type ItemType (line 9) | internal enum ItemType
type EquipmentType (line 22) | public enum EquipmentType : short
FILE: KHSave.LibDDD/Types/WorldType.cs
type WorldType (line 5) | public enum WorldType : byte
FILE: KHSave.LibFf7Remake/Chunks/Chunk.cs
class ChunkHeader (line 24) | public class ChunkHeader
class ChunkContent (line 41) | public class ChunkContent
class Chunk (line 49) | public class Chunk
type Type (line 51) | public enum Type
method Chunk (line 68) | public Chunk(ChunkHeader header, ChunkContent content)
method Read (line 74) | public static Chunk Read(Stream stream, Type type)
method Write (line 90) | public void Write(Stream stream)
method ToString (line 100) | public override string ToString()
FILE: KHSave.LibFf7Remake/Chunks/ChunkChapter.cs
class ChunkChapter (line 26) | public class ChunkChapter
method ChunkChapter (line 46) | public ChunkChapter()
FILE: KHSave.LibFf7Remake/Chunks/ChunkCommon.cs
class ChunkCommon (line 24) | public class ChunkCommon
FILE: KHSave.LibFf7Remake/Models/ChapterObject.cs
class ChapterObject (line 23) | public class ChapterObject
method ToString (line 34) | public override string ToString() =>
FILE: KHSave.LibFf7Remake/Models/Character.cs
class Character (line 23) | public class Character
FILE: KHSave.LibFf7Remake/Models/CharacterEquipment.cs
class CharacterEquipment (line 23) | public class CharacterEquipment
FILE: KHSave.LibFf7Remake/Models/CharacterStats.cs
class CharacterStats (line 5) | public class CharacterStats
FILE: KHSave.LibFf7Remake/Models/Inventory.cs
class Inventory (line 24) | public class Inventory
FILE: KHSave.LibFf7Remake/Models/Materia.cs
class Materia (line 24) | public class Materia
FILE: KHSave.LibFf7Remake/Models/MateriaEquipment.cs
class MateriaEquipment (line 23) | public class MateriaEquipment
FILE: KHSave.LibFf7Remake/Models/UnknownStructure.cs
class UnknownStructure (line 23) | public class UnknownStructure
FILE: KHSave.LibFf7Remake/Models/UnknownStructure2.cs
class UnknownStructure2 (line 23) | public class UnknownStructure2
FILE: KHSave.LibFf7Remake/Models/UnknownStructure3.cs
class UnknownStructure3 (line 23) | public class UnknownStructure3
FILE: KHSave.LibFf7Remake/Models/Vector3f.cs
class Vector3f (line 23) | public class Vector3f
FILE: KHSave.LibFf7Remake/Models/WeaponFound.cs
class WeaponFound (line 23) | public class WeaponFound
FILE: KHSave.LibFf7Remake/SaveFf7Remake.cs
class SaveFf7Remake (line 29) | public class SaveFf7Remake
method SaveFf7Remake (line 43) | private SaveFf7Remake(List<Chunk> chunks)
method Write (line 50) | public SaveFf7Remake Write(Stream stream)
method ReimportChunks (line 103) | public void ReimportChunks()
method ReadChunk (line 130) | private T ReadChunk<T>(int index)
method WriteChunk (line 141) | private void WriteChunk<T>(T item, int index)
method IsValid (line 149) | public static bool IsValid(Stream stream)
method Read (line 190) | public static SaveFf7Remake Read(Stream stream)
FILE: KHSave.LibFf7Remake/Types/CharacterStatusType.cs
type CharacterStatusType (line 23) | public enum CharacterStatusType : byte
FILE: KHSave.LibFf7Remake/Types/CharacterType.cs
type CharacterType (line 23) | public enum CharacterType
FILE: KHSave.LibFf7Remake/Types/InventoryType.cs
type InventoryType (line 23) | public enum InventoryType
FILE: KHSave.LibFf7Remake/Types/ItemCategory.cs
type ItemCategory (line 5) | public enum ItemCategory
FILE: KHSave.LibPersona3/Models/Character.cs
class Character (line 6) | public class Character
FILE: KHSave.LibPersona3/Models/Persona.cs
type Persona (line 6) | public record Persona
FILE: KHSave.LibPersona3/Models/SocialLinks.cs
type SocialLinkArcana (line 5) | public enum SocialLinkArcana
type SocialLinks (line 39) | public record SocialLinks
FILE: KHSave.LibPersona3/Models/SocialLinksPortable.cs
type SocialLinkArcanaPortable (line 5) | public enum SocialLinkArcanaPortable
type SocialLinksPortable (line 37) | public record SocialLinksPortable
FILE: KHSave.LibPersona3/Presets.cs
class Presets (line 5) | public static partial class Presets
type Field (line 7) | public record Field
method FieldVF_ (line 15) | private static Field FieldVF_(int category, int map, string descriptio...
method FieldVFP (line 17) | private static Field FieldVFP(int category, int map, string descriptio...
method Field_F_ (line 19) | private static Field Field_F_(int category, int map, string descriptio...
method Field_FP (line 21) | private static Field Field_FP(int category, int map, string descriptio...
method Field__P (line 23) | private static Field Field__P(int category, int map, string descriptio...
FILE: KHSave.LibPersona3/SavePersona3.cs
type GameVersion (line 14) | [Flags]
type TimeOfTheDay (line 22) | public enum TimeOfTheDay : byte
type McStatus (line 35) | public enum McStatus : short
class SavePersona3 (line 45) | public class SavePersona3
type SectionType (line 47) | public enum SectionType
type Flags (line 73) | private enum Flags
method SavePersona3 (line 80) | static SavePersona3()
method SavePersona3 (line 114) | private SavePersona3(Stream stream)
method Read (line 217) | public static SavePersona3 Read(Stream stream) => new(stream);
method IsValid (line 219) | public static bool IsValid(Stream stream)
method IsValidInternal (line 228) | private static bool IsValidInternal(BinaryReader reader)
method Write (line 256) | public void Write(Stream stream)
method ConvertToPortable (line 356) | public void ConvertToPortable()
method GetGameFlag (line 366) | private bool GetGameFlag(Flags flagId)
method SetGameFlag (line 376) | private void SetGameFlag(Flags flagId, bool value)
method ReadSectionByte (line 389) | private byte ReadSectionByte(SectionType section) => TryReadSection(se...
method ReadSectionInt16 (line 390) | private short ReadSectionInt16(SectionType section) => TryReadSection(...
method ReadSectionInt32 (line 391) | private int ReadSectionInt32(SectionType section) => TryReadSection(se...
method ReadSectionArray (line 392) | private T[] ReadSectionArray<T>(SectionType section) where T : class
method WriteSection (line 406) | private void WriteSection(SectionType section, byte value) => TryWrite...
method WriteSection (line 407) | private void WriteSection(SectionType section, short value) => TryWrit...
method WriteSection (line 408) | private void WriteSection(SectionType section, int value) => TryWriteS...
method WriteSection (line 409) | private void WriteSection<T>(SectionType section, T[] array) where T :...
method TryReadSection (line 416) | private T TryReadSection<T>(SectionType section, Func<BinaryReader, T>...
method TryReadSection (line 424) | private T TryReadSection<T>(SectionType section) where T : class
method TryWriteSection (line 432) | private void TryWriteSection(SectionType section, Action<BinaryWriter>...
FILE: KHSave.LibPersona3/Types/ArcanaType.cs
type ArcanaType (line 3) | public enum ArcanaType : byte
FILE: KHSave.LibPersona3/Types/Characters.cs
type Characters (line 5) | public enum Characters : short
FILE: KHSave.LibPersona3/Types/Demon.cs
class DemonAttribute (line 6) | public class DemonAttribute : InfoAttribute
method DemonAttribute (line 11) | public DemonAttribute(string name = null, bool royal = false, string t...
method GetArcana (line 17) | public static string GetArcana(object obj) =>
class MagicianAttribute (line 20) | public class MagicianAttribute : DemonAttribute
method MagicianAttribute (line 22) | public MagicianAttribute(string name = null, bool royal = false) : bas...
class JusticeAttribute (line 24) | public class JusticeAttribute : DemonAttribute
method JusticeAttribute (line 26) | public JusticeAttribute(string name = null, bool royal = false) : base...
class DevilAttribute (line 28) | public class DevilAttribute : DemonAttribute
method DevilAttribute (line 30) | public DevilAttribute(string name = null, bool royal = false) : base(n...
class StarAttribute (line 32) | public class StarAttribute : DemonAttribute
method StarAttribute (line 34) | public StarAttribute(string name = null, bool royal = false) : base(na...
class LoversAttribute (line 36) | public class LoversAttribute : DemonAttribute
method LoversAttribute (line 38) | public LoversAttribute(string name = null, bool royal = false) : base(...
class ChariotAttribute (line 40) | public class ChariotAttribute : DemonAttribute
method ChariotAttribute (line 42) | public ChariotAttribute(string name = null, bool royal = false) : base...
class EmperorAttribute (line 44) | public class EmperorAttribute : DemonAttribute
method EmperorAttribute (line 46) | public EmperorAttribute(string name = null, bool royal = false) : base...
class HangedAttribute (line 48) | public class HangedAttribute : DemonAttribute
method HangedAttribute (line 50) | public HangedAttribute(string name = null, bool royal = false) : base(...
class FoolAttribute (line 52) | public class FoolAttribute : DemonAttribute
method FoolAttribute (line 54) | public FoolAttribute(string name = null, bool royal = false) : base(na...
class TowerAttribute (line 56) | public class TowerAttribute : DemonAttribute
method TowerAttribute (line 58) | public TowerAttribute(string name = null, bool royal = false) : base(n...
class HierophantAttribute (line 60) | public class HierophantAttribute : DemonAttribute
method HierophantAttribute (line 62) | public HierophantAttribute(string name = null, bool royal = false) : b...
class PriestessAttribute (line 64) | public class PriestessAttribute : DemonAttribute
method PriestessAttribute (line 66) | public PriestessAttribute(string name = null, bool royal = false) : ba...
class StrengthAttribute (line 68) | public class StrengthAttribute : DemonAttribute
method StrengthAttribute (line 70) | public StrengthAttribute(string name = null, bool royal = false) : bas...
class EmpressAttribute (line 72) | public class EmpressAttribute : DemonAttribute
method EmpressAttribute (line 74) | public EmpressAttribute(string name = null, bool royal = false) : base...
class SunAttribute (line 76) | public class SunAttribute : DemonAttribute
method SunAttribute (line 78) | public SunAttribute(string name = null, bool royal = false) : base(nam...
class MoonAttribute (line 80) | public class MoonAttribute : DemonAttribute
method MoonAttribute (line 82) | public MoonAttribute(string name = null, bool royal = false) : base(na...
class JudgementAttribute (line 84) | public class JudgementAttribute : DemonAttribute
method JudgementAttribute (line 86) | public JudgementAttribute(string name = null, bool royal = false) : ba...
class AeonAttribute (line 89) | public class AeonAttribute : DemonAttribute
method AeonAttribute (line 91) | public AeonAttribute(string name = null, bool royal = false) : base(na...
type Demons (line 94) | public enum Demons : short
FILE: KHSave.LibPersona3/Types/ExpendableItems.cs
type ExpendableItems (line 5) | public enum ExpendableItems
FILE: KHSave.LibPersona3/Types/Inventory.cs
class ConsumableHpAttribute (line 5) | public class ConsumableHpAttribute : ConsumableAttribute
method ConsumableHpAttribute (line 7) | public ConsumableHpAttribute(string name = null) : base(name) { }
type Inventory (line 10) | public enum Inventory
FILE: KHSave.LibPersona3/Types/Skill.cs
class SkillAttribute (line 5) | public class SkillAttribute : InfoAttribute
method SkillAttribute (line 7) | public SkillAttribute(string name = null) : base(name) { }
class HitSkillAttribute (line 9) | public class HitSkillAttribute : SkillAttribute
method HitSkillAttribute (line 11) | public HitSkillAttribute(string name = null) : base(name) { }
class GunSkillAttribute (line 13) | public class GunSkillAttribute : SkillAttribute
method GunSkillAttribute (line 15) | public GunSkillAttribute(string name = null) : base(name) { }
class FireSkillAttribute (line 17) | public class FireSkillAttribute : SkillAttribute
method FireSkillAttribute (line 19) | public FireSkillAttribute(string name = null) : base(name) { }
class IceSkillAttribute (line 21) | public class IceSkillAttribute : SkillAttribute
method IceSkillAttribute (line 23) | public IceSkillAttribute(string name = null) : base(name) { }
class WindSkillAttribute (line 25) | public class WindSkillAttribute : SkillAttribute
method WindSkillAttribute (line 27) | public WindSkillAttribute(string name = null) : base(name) { }
class ThunderSkillAttribute (line 29) | public class ThunderSkillAttribute : SkillAttribute
method ThunderSkillAttribute (line 31) | public ThunderSkillAttribute(string name = null) : base(name) { }
class BlessSkillAttribute (line 33) | public class BlessSkillAttribute : SkillAttribute
method BlessSkillAttribute (line 35) | public BlessSkillAttribute(string name = null) : base(name) { }
class DeathSkillAttribute (line 37) | public class DeathSkillAttribute : SkillAttribute
method DeathSkillAttribute (line 39) | public DeathSkillAttribute(string name = null) : base(name) { }
class AlmightySkillAttribute (line 41) | public class AlmightySkillAttribute : SkillAttribute
method AlmightySkillAttribute (line 43) | public AlmightySkillAttribute(string name = null) : base(name) { }
class SupportSkillAttribute (line 45) | public class SupportSkillAttribute : SkillAttribute
method SupportSkillAttribute (line 47) | public SupportSkillAttribute(string name = null) : base(name) { }
class AutoSkillAttribute (line 49) | public class AutoSkillAttribute : SkillAttribute
method AutoSkillAttribute (line 51) | public AutoSkillAttribute(string name = null) : base(name) { }
class PoisonSkillAttribute (line 53) | public class PoisonSkillAttribute : SkillAttribute
method PoisonSkillAttribute (line 55) | public PoisonSkillAttribute(string name = null) : base(name) { }
class HealSkillAttribute (line 57) | public class HealSkillAttribute : SkillAttribute
method HealSkillAttribute (line 59) | public HealSkillAttribute(string name = null) : base(name) { }
type Skill (line 62) | public enum Skill : short
FILE: KHSave.LibPersona5/Models/Character.cs
class Character (line 6) | public class Character
FILE: KHSave.LibPersona5/Models/Persona.cs
class Persona (line 6) | public class Persona
FILE: KHSave.LibPersona5/Persona5Royal.cs
class Persona5Royal (line 6) | internal class Persona5Royal : ISavePersona5
FILE: KHSave.LibPersona5/Persona5Vanilla.cs
class Persona5Vanilla (line 6) | internal class Persona5Vanilla : ISavePersona5
FILE: KHSave.LibPersona5/Presets.Items.cs
class Presets (line 13) | public static partial class Presets
type IItem (line 32) | public interface IItem
class Items (line 38) | public class Items
class Accessory (line 51) | public class Accessory : IItem
class Armor (line 58) | public class Armor : IItem
class Consumable (line 71) | public class Consumable : IItem
class KeyItem (line 77) | public class KeyItem : IItem
class Material (line 83) | public class Material : IItem
class MeleeWeapon (line 89) | public class MeleeWeapon : IItem
class Outfit (line 101) | public class Outfit : IItem
class SkillCard (line 107) | public class SkillCard : IItem
class RangeWeapon (line 113) | public class RangeWeapon : IItem
method GetItems (line 125) | public static Items GetItems(bool isRoyal)
method GetItems (line 144) | private static IEnumerable<TItem> GetItems<TItem>(
FILE: KHSave.LibPersona5/Presets.Persona.cs
class Presets (line 11) | public static partial class Presets
class Persona (line 13) | public class Persona
method ToString (line 33) | public override string ToString() =>
class PersonaSkillset (line 37) | private class PersonaSkillset
class PersonaSkill (line 45) | private class PersonaSkill
method GetResourceFileName (line 52) | private static string GetResourceFileName(string fileName, bool isRoya...
method GetPersona (line 56) | public static List<Persona> GetPersona(bool isRoyal)
FILE: KHSave.LibPersona5/Presets.cs
class Presets (line 6) | public static partial class Presets
class Field (line 8) | public class Field
method ReadInt32BE (line 17) | private static int ReadInt32BE(this Stream stream) =>
method FieldAll (line 23) | private static Field FieldAll(int category, int map, string descriptio...
method FieldVanilla (line 25) | private static Field FieldVanilla(int category, int map, string descri...
method FieldRoyal (line 27) | private static Field FieldRoyal(int category, int map, string descript...
FILE: KHSave.LibPersona5/SavePersona5.cs
type ISavePersona5 (line 9) | public interface ISavePersona5
class SavePersona5 (line 37) | public class SavePersona5
method SavePersona5 (line 43) | static SavePersona5()
method IsValid (line 52) | public static bool IsValid(Stream stream)
method Read (line 64) | public static ISavePersona5 Read(Stream stream)
method Write (line 77) | public static void Write<TSavePersona5>(Stream stream, TSavePersona5 s...
method Read (line 83) | private static TSavePersona5 Read<TSavePersona5>(Stream stream)
method GetGameIdentifier (line 87) | private static int GetGameIdentifier(Stream stream) =>
method ReadString (line 90) | private static object ReadString(MappingReadArgs arg)
method WriteString (line 124) | private static void WriteString(MappingWriteArgs arg)
method ReadFloat (line 149) | private unsafe static object ReadFloat(MappingReadArgs arg)
method WriteFloat (line 158) | private unsafe static void WriteFloat(MappingWriteArgs arg)
FILE: KHSave.LibPersona5/Types/ArcanaType.cs
type ArcanaType (line 3) | public enum ArcanaType : byte
FILE: KHSave.LibPersona5/Types/Characters.cs
type Characters (line 5) | public enum Characters
FILE: KHSave.LibPersona5/Types/Demon.cs
class DemonAttribute (line 6) | public class DemonAttribute : InfoAttribute
method DemonAttribute (line 11) | public DemonAttribute(string name = null, bool royal = false, string t...
method GetArcana (line 17) | public static string GetArcana(object obj) =>
class MagicianAttribute (line 20) | public class MagicianAttribute : DemonAttribute
method MagicianAttribute (line 22) | public MagicianAttribute(string name = null, bool royal = false) : bas...
class JusticeAttribute (line 24) | public class JusticeAttribute : DemonAttribute
method JusticeAttribute (line 26) | public JusticeAttribute(string name = null, bool royal = false) : base...
class DevilAttribute (line 28) | public class DevilAttribute : DemonAttribute
method DevilAttribute (line 30) | public DevilAttribute(string name = null, bool royal = false) : base(n...
class StarAttribute (line 32) | public class StarAttribute : DemonAttribute
method StarAttribute (line 34) | public StarAttribute(string name = null, bool royal = false) : base(na...
class LoversAttribute (line 36) | public class LoversAttribute : DemonAttribute
method LoversAttribute (line 38) | public LoversAttribute(string name = null, bool royal = false) : base(...
class ChariotAttribute (line 40) | public class ChariotAttribute : DemonAttribute
method ChariotAttribute (line 42) | public ChariotAttribute(string name = null, bool royal = false) : base...
class EmperorAttribute (line 44) | public class EmperorAttribute : DemonAttribute
method EmperorAttribute (line 46) | public EmperorAttribute(string name = null, bool royal = false) : base...
class HangedAttribute (line 48) | public class HangedAttribute : DemonAttribute
method HangedAttribute (line 50) | public HangedAttribute(string name = null, bool royal = false) : base(...
class FoolAttribute (line 52) | public class FoolAttribute : DemonAttribute
method FoolAttribute (line 54) | public FoolAttribute(string name = null, bool royal = false) : base(na...
class TowerAttribute (line 56) | public class TowerAttribute : DemonAttribute
method TowerAttribute (line 58) | public TowerAttribute(string name = null, bool royal = false) : base(n...
class HierophantAttribute (line 60) | public class HierophantAttribute : DemonAttribute
method HierophantAttribute (line 62) | public HierophantAttribute(string name = null, bool royal = false) : b...
class PriestessAttribute (line 64) | public class PriestessAttribute : DemonAttribute
method PriestessAttribute (line 66) | public PriestessAttribute(string name = null, bool royal = false) : ba...
class StrengthAttribute (line 68) | public class StrengthAttribute : DemonAttribute
method StrengthAttribute (line 70) | public StrengthAttribute(string name = null, bool royal = false) : bas...
class EmpressAttribute (line 72) | public class EmpressAttribute : DemonAttribute
method EmpressAttribute (line 74) | public EmpressAttribute(string name = null, bool royal = false) : base...
class SunAttribute (line 76) | public class SunAttribute : DemonAttribute
method SunAttribute (line 78) | public SunAttribute(string name = null, bool royal = false) : base(nam...
class MoonAttribute (line 80) | public class MoonAttribute : DemonAttribute
method MoonAttribute (line 82) | public MoonAttribute(string name = null, bool royal = false) : base(na...
class JudgementAttribute (line 84) | public class JudgementAttribute : DemonAttribute
method JudgementAttribute (line 86) | public JudgementAttribute(string name = null, bool royal = false) : ba...
class DeathAttribute (line 88) | public class DeathAttribute : DemonAttribute
method DeathAttribute (line 90) | public DeathAttribute(string name = null, bool royal = false) : base(n...
class TemperAttribute (line 92) | public class TemperAttribute : DemonAttribute
method TemperAttribute (line 94) | public TemperAttribute(string name = null, bool royal = false) : base(...
class HermitAttribute (line 96) | public class HermitAttribute : DemonAttribute
method HermitAttribute (line 98) | public HermitAttribute(string name = null, bool royal = false) : base(...
class FortuneAttribute (line 100) | public class FortuneAttribute : DemonAttribute
method FortuneAttribute (line 102) | public FortuneAttribute(string name = null, bool royal = false) : base...
class WorldAttribute (line 104) | public class WorldAttribute : DemonAttribute
method WorldAttribute (line 106) | public WorldAttribute(string name = null, bool royal = false) : base(n...
FILE: KHSave.LibPersona5/Types/Equipment.cs
class EquipmentAttribute (line 5) | public class EquipmentAttribute : InfoAttribute
method EquipmentAttribute (line 7) | public EquipmentAttribute(string name = null) : base(name) { }
class DaggerAttribute (line 10) | public class DaggerAttribute : EquipmentAttribute
method DaggerAttribute (line 12) | public DaggerAttribute(string name = null) : base(name) { }
class PoleAttribute (line 15) | public class PoleAttribute : EquipmentAttribute
method PoleAttribute (line 17) | public PoleAttribute(string name = null) : base(name) { }
class SaberAttribute (line 20) | public class SaberAttribute : EquipmentAttribute
method SaberAttribute (line 22) | public SaberAttribute(string name = null) : base(name) { }
class RangeAttribute (line 25) | public class RangeAttribute : EquipmentAttribute
method RangeAttribute (line 27) | public RangeAttribute(string name = null) : base(name) { }
class RangeJokerAttribute (line 30) | public class RangeJokerAttribute : RangeAttribute
method RangeJokerAttribute (line 32) | public RangeJokerAttribute(string name = null) : base(name) { }
class RangeCrowAttribute (line 35) | public class RangeCrowAttribute : RangeAttribute
method RangeCrowAttribute (line 37) | public RangeCrowAttribute(string name = null) : base(name) { }
class ProtectorAttribute (line 40) | public class ProtectorAttribute : EquipmentAttribute
method ProtectorAttribute (line 42) | public ProtectorAttribute(string name = null) : base(name) { }
class ProtectorMaleAttribute (line 45) | public class ProtectorMaleAttribute : ProtectorAttribute
method ProtectorMaleAttribute (line 47) | public ProtectorMaleAttribute(string name = null) : base(name) { }
class ProtectorFemaleAttribute (line 50) | public class ProtectorFemaleAttribute : ProtectorAttribute
method ProtectorFemaleAttribute (line 52) | public ProtectorFemaleAttribute(string name = null) : base(name) { }
class ProtectorUnisexAttribute (line 55) | public class ProtectorUnisexAttribute : ProtectorAttribute
method ProtectorUnisexAttribute (line 57) | public ProtectorUnisexAttribute(string name = null) : base(name) { }
class ProtectorCatAttribute (line 60) | public class ProtectorCatAttribute : ProtectorAttribute
method ProtectorCatAttribute (line 62) | public ProtectorCatAttribute(string name = null) : base(name) { }
class OutfitAttribute (line 65) | public class OutfitAttribute : EquipmentAttribute
method OutfitAttribute (line 67) | public OutfitAttribute(string name = null) : base(name) { }
type Equipment (line 70) | public enum Equipment : ushort
FILE: KHSave.LibPersona5/Types/Inventory.cs
class ConsumableHpAttribute (line 5) | public class ConsumableHpAttribute : ConsumableAttribute
method ConsumableHpAttribute (line 7) | public ConsumableHpAttribute(string name = null) : base(name) { }
type Inventory (line 10) | public enum Inventory
FILE: KHSave.LibPersona5/Types/Skill.cs
class SkillAttribute (line 5) | public class SkillAttribute : InfoAttribute
method SkillAttribute (line 7) | public SkillAttribute(string name = null) : base(name) { }
class HitSkillAttribute (line 9) | public class HitSkillAttribute : SkillAttribute
method HitSkillAttribute (line 11) | public HitSkillAttribute(string name = null) : base(name) { }
class GunSkillAttribute (line 13) | public class GunSkillAttribute : SkillAttribute
method GunSkillAttribute (line 15) | public GunSkillAttribute(string name = null) : base(name) { }
class FireSkillAttribute (line 17) | public class FireSkillAttribute : SkillAttribute
method FireSkillAttribute (line 19) | public FireSkillAttribute(string name = null) : base(name) { }
class IceSkillAttribute (line 21) | public class IceSkillAttribute : SkillAttribute
method IceSkillAttribute (line 23) | public IceSkillAttribute(string name = null) : base(name) { }
class WindSkillAttribute (line 25) | public class WindSkillAttribute : SkillAttribute
method WindSkillAttribute (line 27) | public WindSkillAttribute(string name = null) : base(name) { }
class ThunderSkillAttribute (line 29) | public class ThunderSkillAttribute : SkillAttribute
method ThunderSkillAttribute (line 31) | public ThunderSkillAttribute(string name = null) : base(name) { }
class BlessSkillAttribute (line 33) | public class BlessSkillAttribute : SkillAttribute
method BlessSkillAttribute (line 35) | public BlessSkillAttribute(string name = null) : base(name) { }
class DeathSkillAttribute (line 37) | public class DeathSkillAttribute : SkillAttribute
method DeathSkillAttribute (line 39) | public DeathSkillAttribute(string name = null) : base(name) { }
class AlmightySkillAttribute (line 41) | public class AlmightySkillAttribute : SkillAttribute
method AlmightySkillAttribute (line 43) | public AlmightySkillAttribute(string name = null) : base(name) { }
class NuclearSkillAttribute (line 45) | public class NuclearSkillAttribute : SkillAttribute
method NuclearSkillAttribute (line 47) | public NuclearSkillAttribute(string name = null) : base(name) { }
class PsychoSkillAttribute (line 49) | public class PsychoSkillAttribute : SkillAttribute
method PsychoSkillAttribute (line 51) | public PsychoSkillAttribute(string name = null) : base(name) { }
class SupportSkillAttribute (line 53) | public class SupportSkillAttribute : SkillAttribute
method SupportSkillAttribute (line 55) | public SupportSkillAttribute(string name = null) : base(name) { }
class AutoSkillAttribute (line 57) | public class AutoSkillAttribute : SkillAttribute
method AutoSkillAttribute (line 59) | public AutoSkillAttribute(string name = null) : base(name) { }
class PoisonSkillAttribute (line 61) | public class PoisonSkillAttribute : SkillAttribute
method PoisonSkillAttribute (line 63) | public PoisonSkillAttribute(string name = null) : base(name) { }
class HealSkillAttribute (line 65) | public class HealSkillAttribute : SkillAttribute
method HealSkillAttribute (line 67) | public HealSkillAttribute(string name = null) : base(name) { }
class SpecialSkillAttribute (line 69) | public class SpecialSkillAttribute : SkillAttribute
method SpecialSkillAttribute (line 71) | public SpecialSkillAttribute(string name = null) : base(name) { }
type Skill (line 74) | public enum Skill : short
FILE: KHSave.LibPersona5/Types/SkillRoyal.cs
type SkillRoyal (line 5) | public enum SkillRoyal : short
FILE: KHSave.LibPersona5/Types/Trait.cs
type Trait (line 5) | public enum Trait : short
FILE: KHSave.LibRecom/Attributes/CardEnemyAttribute.cs
class CardEnemyAttribute (line 5) | public class CardEnemyAttribute : InfoAttribute
method CardEnemyAttribute (line 7) | public CardEnemyAttribute(string info = null) : base(info)
FILE: KHSave.LibRecom/Attributes/CardFriendAttribute.cs
class CardFriendAttribute (line 5) | public class CardFriendAttribute : InfoAttribute
method CardFriendAttribute (line 7) | public CardFriendAttribute(string info = null) : base(info)
FILE: KHSave.LibRecom/Attributes/CardItemAttribute.cs
class CardItemAttribute (line 5) | public class CardItemAttribute : ConsumableAttribute
method CardItemAttribute (line 7) | public CardItemAttribute(string name = null) : base(name)
FILE: KHSave.LibRecom/Attributes/CardMagicAttribute.cs
class CardMagicAttribute (line 5) | public class CardMagicAttribute : MagicAttribute
method CardMagicAttribute (line 7) | public CardMagicAttribute(string name = null) : base(name)
FILE: KHSave.LibRecom/Attributes/CardMapAttribute.cs
class CardMapAttribute (line 5) | public class CardMapAttribute : InfoAttribute
method CardMapAttribute (line 7) | public CardMapAttribute(string info = null) : base(info)
class CardMapRedAttribute (line 12) | public class CardMapRedAttribute : CardMapAttribute
method CardMapRedAttribute (line 14) | public CardMapRedAttribute(string info = null) : base(info)
class CardMapGreenAttribute (line 19) | public class CardMapGreenAttribute : CardMapAttribute
method CardMapGreenAttribute (line 21) | public CardMapGreenAttribute(string info = null) : base(info)
class CardMapBlueAttribute (line 26) | public class CardMapBlueAttribute : CardMapAttribute
method CardMapBlueAttribute (line 28) | public CardMapBlueAttribute(string info = null) : base(info)
class CardMapSpecialAttribute (line 33) | public class CardMapSpecialAttribute : CardMapAttribute
method CardMapSpecialAttribute (line 35) | public CardMapSpecialAttribute(string info = null) : base(info)
FILE: KHSave.LibRecom/Attributes/CardSpecialAttribute.cs
class CardSpecialAttribute (line 5) | public class CardSpecialAttribute : InfoAttribute
method CardSpecialAttribute (line 7) | public CardSpecialAttribute(string info = null) : base(info)
FILE: KHSave.LibRecom/Attributes/CardSummonAttribute.cs
class CardSummonAttribute (line 3) | public class CardSummonAttribute : CardMagicAttribute
method CardSummonAttribute (line 5) | public CardSummonAttribute(string name = null) : base(name)
FILE: KHSave.LibRecom/Attributes/CardWeaponAttribute.cs
class CardWeaponAttribute (line 5) | public class CardWeaponAttribute : KeybladeAttribute
method CardWeaponAttribute (line 7) | public CardWeaponAttribute(string name = null) : base(name)
FILE: KHSave.LibRecom/Attributes/CardWorldAttribute.cs
class CardWorldAttribute (line 5) | public class CardWorldAttribute : InfoAttribute
method CardWorldAttribute (line 7) | public CardWorldAttribute(string info = null) : base(info)
FILE: KHSave.LibRecom/DataRecom.cs
class DataRecom (line 7) | public class DataRecom
FILE: KHSave.LibRecom/DataRecomMcWork.cs
class DataRecomMcWork (line 5) | public class DataRecomMcWork
FILE: KHSave.LibRecom/DataRecomTable0.cs
class DataRecomTable0 (line 6) | public class DataRecomTable0
FILE: KHSave.LibRecom/DataRecomTable1.cs
class DataRecomTable1 (line 6) | public class DataRecomTable1
FILE: KHSave.LibRecom/DataRecomTable2.cs
class DataRecomTable2 (line 5) | public class DataRecomTable2
FILE: KHSave.LibRecom/Models/Card.cs
type Card (line 6) | public struct Card : IEquatable<Card>
method Equals (line 12) | public bool Equals(Card other) =>
method Equals (line 15) | public override bool Equals(object obj) =>
method GetHashCode (line 18) | public override int GetHashCode() =>
method ToString (line 22) | public override string ToString()
FILE: KHSave.LibRecom/Models/CardFlags.cs
class CardFlags (line 5) | public class CardFlags
FILE: KHSave.LibRecom/Models/CardModel.cs
class CardModel (line 7) | public static class CardModel
method GetCardInventoryIndex (line 162) | public static int GetCardInventoryIndex(CardType cardType, bool isPrem...
method ToKey (line 177) | private static Card ToKey(this Card card) => new Card
method Project (line 183) | private static IEnumerable<Card> Project(this CardType[] cards) =>
method Indexed (line 186) | private static IEnumerable<Card> Indexed(this IEnumerable<Card> cards) =>
method WithPremium (line 194) | private static IEnumerable<Card> WithPremium(this IEnumerable<Card> ca...
FILE: KHSave.LibRecom/Models/FriendsFlags.cs
class FriendsFlags (line 5) | public class FriendsFlags
FILE: KHSave.LibRecom/Models/Kh2CardFlags.cs
class Kh2CardFlags (line 5) | public class Kh2CardFlags
FILE: KHSave.LibRecom/Models/PoohFlags.cs
class PoohFlags (line 5) | public class PoohFlags
FILE: KHSave.LibRecom/Models/SkillFlags.cs
class SkillFlags (line 5) | public class SkillFlags
FILE: KHSave.LibRecom/Models/StoryFlag.cs
class StoryFlag (line 5) | public class StoryFlag
FILE: KHSave.LibRecom/Models/TutorialFlags.cs
class TutorialFlags (line 7) | public class TutorialFlags
FILE: KHSave.LibRecom/SaveKhRecom.cs
class SaveKhRecom (line 6) | public class SaveKhRecom
method SaveKhRecom (line 16) | public SaveKhRecom()
method Write (line 21) | public void Write(Stream stream)
method Read (line 39) | public static SaveKhRecom Read(Stream stream)
method IsValid (line 47) | public static bool IsValid(Stream stream)
method CalculateChecksum (line 57) | private static uint CalculateChecksum(byte[] data)
FILE: KHSave.LibRecom/Types/CardType.cs
type CardType (line 6) | public enum CardType
FILE: KHSave.LibRecom/Types/Difficulty.cs
type Difficulty (line 3) | public enum Difficulty : byte
FILE: KHSave.LibRecom/Types/PlayMode.cs
type PlayMode (line 3) | public enum PlayMode : byte
FILE: KHSave.LibRecom/Types/SoundMode.cs
type SoundMode (line 3) | public enum SoundMode : byte
FILE: KHSave.SaveEditor.Common/Contracts/IGetSave.cs
type IGetSave (line 3) | public interface IGetSave
method GetSave (line 5) | object GetSave();
FILE: KHSave.SaveEditor.Common/Contracts/IOpenStream.cs
type IOpenStream (line 5) | public interface IOpenStream
method OpenStream (line 7) | void OpenStream(Stream stream);
FILE: KHSave.SaveEditor.Common/Contracts/IRefreshUi.cs
type IRefreshUi (line 3) | public interface IRefreshUi
method RefreshUi (line 5) | void RefreshUi();
FILE: KHSave.SaveEditor.Common/Contracts/IWriteToStream.cs
type IWriteToStream (line 5) | public interface IWriteToStream
method WriteToStream (line 7) | void WriteToStream(Stream stream);
FILE: KHSave.SaveEditor.Common/Controls/ItemComboBox.xaml.cs
class ItemComboBox (line 8) | public partial class ItemComboBox : UserControl
method ItemComboBox (line 10) | public ItemComboBox()
FILE: KHSave.SaveEditor.Common/Controls/TwoEqualColumnsStackPanel.cs
class TwoEqualColumnsStackPanel (line 34) | public class TwoEqualColumnsStackPanel : Panel
method MeasureOverride (line 51) | protected override Size MeasureOverride(Size constraint)
method ArrangeOverride (line 78) | protected override Size ArrangeOverride(Size arrangeSize)
FILE: KHSave.SaveEditor.Common/Exceptions/ImageTooLargeException.cs
class ImageTooLargeException (line 23) | public class ImageTooLargeException : Exception
method ImageTooLargeException (line 25) | public ImageTooLargeException(int sizeLimit) :
FILE: KHSave.SaveEditor.Common/Exceptions/SaveNotSupportedException.cs
class SaveNotSupportedException (line 3) | public class SaveNotSupportedException : VisualException
method SaveNotSupportedException (line 5) | public SaveNotSupportedException(string message) :
FILE: KHSave.SaveEditor.Common/Exceptions/VisualException.cs
class VisualException (line 5) | public class VisualException : Exception
method VisualException (line 7) | public VisualException(string message, string title) :
FILE: KHSave.SaveEditor.Common/Global.cs
class Settings (line 26) | internal class Settings : ApplicationSettingsBase
method Get (line 28) | T Get<T>(T defaultValue, [CallerMemberName] string propertyName = null)
method Set (line 41) | void Set<T>(T value, [CallerMemberName] string propertyName = null) =>...
class Global (line 100) | public static class Global
method CanDisplay (line 185) | public static bool CanDisplay(object item) => IsAdvancedMode || CanDis...
method CanDisplayInBasicMode (line 187) | public static bool CanDisplayInBasicMode(object item)
FILE: KHSave.SaveEditor.Common/Models/EnumIconTypeModel.cs
class EnumIconTypeModel (line 25) | public class EnumIconTypeModel<T> : GenericEntryModel<string, T>
FILE: KHSave.SaveEditor.Common/Models/GenericEntryModel.cs
class GenericEntryModel (line 23) | public class GenericEntryModel<TName, TValue> : BaseNotifyPropertyChanged
method ToString (line 29) | public override string ToString() => Name?.ToString() ?? Value?.ToStri...
FILE: KHSave.SaveEditor.Common/Models/GenericEnumListModel.cs
class GenericEnumListModel (line 25) | public class GenericEnumListModel<TModel, TEnum, TValue> : GenericListMo...
method GenericEnumListModel (line 29) | public GenericEnumListModel(
method GetModels (line 38) | private static IEnumerable<TModel> GetModels(
method GenericEnumListModel (line 68) | public GenericEnumListModel(
class GenericEnumListModel (line 64) | public class GenericEnumListModel<TModel, TEnum> : GenericEnumListModel<...
method GenericEnumListModel (line 29) | public GenericEnumListModel(
method GetModels (line 38) | private static IEnumerable<TModel> GetModels(
method GenericEnumListModel (line 68) | public GenericEnumListModel(
FILE: KHSave.SaveEditor.Common/Models/GenericListModel.cs
class GenericListModel (line 27) | public class GenericListModel<TModel, TName, TValue> : BaseNotifyPropert...
method GenericListModel (line 34) | public GenericListModel(IEnumerable<TModel> items, Func<TValue> valueG...
method GetEnumerator (line 47) | public IEnumerator<TModel> GetEnumerator() => items.AsEnumerable().Get...
method GetEnumerator (line 49) | IEnumerator IEnumerable.GetEnumerator() => items.AsEnumerable().GetEnu...
method GenericListModel (line 58) | public GenericListModel(IEnumerable<TModel> items, Func<TValue> valueG...
class GenericListModel (line 54) | public class GenericListModel<TModel, TValue> : GenericListModel<TModel,...
method GenericListModel (line 34) | public GenericListModel(IEnumerable<TModel> items, Func<TValue> valueG...
method GetEnumerator (line 47) | public IEnumerator<TModel> GetEnumerator() => items.AsEnumerable().Get...
method GetEnumerator (line 49) | IEnumerator IEnumerable.GetEnumerator() => items.AsEnumerable().GetEnu...
method GenericListModel (line 58) | public GenericListModel(IEnumerable<TModel> items, Func<TValue> valueG...
FILE: KHSave.SaveEditor.Common/Models/ItemComboBoxModel.cs
class ItemComboBoxModel (line 24) | public class ItemComboBoxModel<T> : BaseNotifyPropertyChanged
method ItemComboBoxModel (line 29) | public ItemComboBoxModel(Func<T> getter, Action<T> setter)
FILE: KHSave.SaveEditor.Common/Models/KhEnumListModel.cs
class KhEnumListModel (line 24) | public class KhEnumListModel<TModel, TEnum, TValue> : GenericEnumListMod...
method KhEnumListModel (line 28) | public KhEnumListModel(
method DefaultNameGetter (line 37) | private static string DefaultNameGetter(TEnum value) => InfoAttribute....
method DefaultFilter (line 39) | private static bool DefaultFilter(TModel model) => Global.CanDisplay(m...
method KhEnumListModel (line 46) | public KhEnumListModel(
method KhEnumListModel (line 54) | public KhEnumListModel() :
method KhEnumListModel (line 62) | public KhEnumListModel(
method KhEnumListModel (line 70) | public KhEnumListModel() :
class KhEnumListModel (line 42) | public class KhEnumListModel<TModel, TEnum> : KhEnumListModel<TModel, TE...
method KhEnumListModel (line 28) | public KhEnumListModel(
method DefaultNameGetter (line 37) | private static string DefaultNameGetter(TEnum value) => InfoAttribute....
method DefaultFilter (line 39) | private static bool DefaultFilter(TModel model) => Global.CanDisplay(m...
method KhEnumListModel (line 46) | public KhEnumListModel(
method KhEnumListModel (line 54) | public KhEnumListModel() :
method KhEnumListModel (line 62) | public KhEnumListModel(
method KhEnumListModel (line 70) | public KhEnumListModel() :
class KhEnumListModel (line 59) | public class KhEnumListModel<TEnum> : KhEnumListModel<GenericEntryModel<...
method KhEnumListModel (line 28) | public KhEnumListModel(
method DefaultNameGetter (line 37) | private static string DefaultNameGetter(TEnum value) => InfoAttribute....
method DefaultFilter (line 39) | private static bool DefaultFilter(TModel model) => Global.CanDisplay(m...
method KhEnumListModel (line 46) | public KhEnumListModel(
method KhEnumListModel (line 54) | public KhEnumListModel() :
method KhEnumListModel (line 62) | public KhEnumListModel(
method KhEnumListModel (line 70) | public KhEnumListModel() :
FILE: KHSave.SaveEditor.Common/ProcessStream.cs
class ProcessStream (line 12) | public class ProcessStream : Stream
method OpenProcess (line 14) | [DllImport("kernel32.dll")]
method ReadProcessMemory (line 17) | [DllImport("kernel32.dll")]
method WriteProcessMemory (line 20) | [DllImport("kernel32.dll")]
method OpenProcessToken (line 23) | [DllImport("advapi32.dll", SetLastError = true)]
method ProcessStream (line 32) | public ProcessStream(Process process, long baseAddress, uint length)
method Flush (line 56) | public override void Flush()
method Read (line 60) | public override int Read(byte[] buffer, int offset, int count)
method Seek (line 82) | public override long Seek(long offset, SeekOrigin origin)
method SetLength (line 97) | public override void SetLength(long value)
method Write (line 101) | public override void Write(byte[] buffer, int offset, int count)
method OpenProcess (line 121) | private void OpenProcess(Process process)
method GetProcesses (line 131) | public static IEnumerable<Process> GetProcesses() =>
method TryGetProcess (line 134) | public static Process TryGetProcess(Func<Process, bool> predicate, int...
method TryGetProcessAsync (line 151) | public static Task<Process> TryGetProcessAsync(Func<Process, bool> pre...
FILE: KHSave.SaveEditor.Common/Services/ArchiveWriteToStream.cs
class ArchiveWriteToStream (line 7) | public class ArchiveWriteToStream : IWriteToStream
method ArchiveWriteToStream (line 11) | public ArchiveWriteToStream(IWriteToStream realWriteToStream, IArchive...
method WriteToStream (line 21) | public void WriteToStream(Stream stream)
FILE: KHSave.SaveEditor.Common/Services/GenericEqualityComparer.cs
class GenericEqualityComparer (line 7) | public class GenericEqualityComparer<T> : IEqualityComparer<T>, IEqualit...
method GenericEqualityComparer (line 12) | public GenericEqualityComparer(Func<T, T, bool> equals)
method Equals (line 17) | public bool Equals(T x, T y) => _equals(x, y);
method GetHashCode (line 19) | public int GetHashCode(T obj) => 0;
method Equals (line 21) | public new bool Equals(object x, object y) => _equals(x as T, y as T);
method GetHashCode (line 23) | public int GetHashCode(object obj) => 0;
FILE: KHSave.SaveEditor.Common/Services/IconService.cs
class IconService (line 10) | public class IconService
type IconPack (line 12) | public enum IconPack
method IconService (line 185) | static IconService()
method UseIconPack (line 190) | public static void UseIconPack(IconPack iconPack)
method Icon (line 197) | public static ImageSource Icon(object item)
method Icon (line 209) | public static ImageSource Icon(string iconName) =>
FILE: KHSave.SaveEditor.Common/Services/SearchEngine.cs
class SearchEngine (line 7) | public class SearchEngine
type IName (line 11) | public interface IName
type ICount (line 16) | public interface ICount
method Filter (line 21) | public static IEnumerable<T> Filter<T>(
method FilterByName (line 62) | public static bool FilterByName(string searchTerm, IName name) =>
method FilterByCount (line 65) | public static bool FilterByCount(string searchTerm, ICount count)
FILE: KHSave.SaveEditor.Common/ViewModels/ArchiveEntryViewModel.cs
class ArchiveEntryViewModel (line 7) | public class ArchiveEntryViewModel : GenericEntryModel<string, ArchiveEn...
method ArchiveEntryViewModel (line 9) | public ArchiveEntryViewModel(IArchiveEntry archiveEntry)
method ImportData (line 27) | public void ImportData(byte[] data)
method Rename (line 40) | public void Rename(string newname)
method Erase (line 48) | public void Erase()
method ToString (line 59) | public override string ToString() => Name;
FILE: KHSave.SaveEditor.Common/ViewModels/ArchiveManagerViewModel.cs
class ArchiveManagerViewModel (line 13) | public class ArchiveManagerViewModel : BaseNotifyPropertyChanged
method ArchiveManagerViewModel (line 21) | public ArchiveManagerViewModel(Window window, IArchive archive, string...
method Getter (line 130) | private ArchiveEntryViewModel Getter() => SelectedValue;
method Setter (line 132) | private void Setter(ArchiveEntryViewModel obj) => SelectedValue = obj;
method ShowInfoMessageBox (line 134) | private void ShowInfoMessageBox(string message) =>
FILE: KHSave.SaveEditor.Common/Views/ArchiveManagerView.xaml.cs
class ArchiveManagerView (line 11) | public partial class ArchiveManagerView : Window
method ArchiveManagerView (line 13) | public ArchiveManagerView()
method SetArchive (line 24) | public void SetArchive(IArchive archive, string archvieFileName) =>
method ListBox_MouseDoubleClick (line 29) | private void ListBox_MouseDoubleClick(object sender, System.Windows.In...
FILE: KHSave.SaveEditor.Ff7Remake/Data/BgmPreset.cs
class BgmPreset (line 12) | public static class BgmPreset
class BgmResource (line 14) | private class BgmResource
class BgmItem (line 23) | private class BgmItem
method LazyInitialize (line 34) | public static void LazyInitialize()
method Get (line 55) | public static List<BgmModel> Get() => _bgm;
method InternalFetchLocations (line 57) | private static async Task<List<BgmItem>> InternalFetchLocations()
FILE: KHSave.SaveEditor.Ff7Remake/Data/ItemsPreset.cs
class ItemName (line 13) | public class ItemName
class ItemsPreset (line 25) | public static class ItemsPreset
class ItemsResource (line 27) | public class ItemsResource
class ItemProperty (line 36) | public class ItemProperty
method LazyInitialize (line 52) | public static void LazyInitialize()
method GetItemCategory (line 75) | public static ItemCategory GetItemCategory(InventoryType inventoryType)
method Get (line 101) | public static ItemProperty Get(InventoryType type) => Get((int)type) ?...
method GetAll (line 107) | public static IEnumerable<ItemProperty> GetAll() =>
method Get (line 110) | public static ItemProperty Get(int itemId) =>
method GetIconAttribute (line 113) | private static string GetIconAttribute(InventoryType item)
method InternalFetchLocations (line 132) | private static async Task<IEnumerable<ItemName>> InternalFetchLocations()
FILE: KHSave.SaveEditor.Ff7Remake/Data/LocationsPreset.cs
class Location (line 12) | public class Location
method Location (line 32) | public Location()
method Location (line 37) | public Location(int chapter, bool oob, string description, double x, d...
class LocationsPreset (line 48) | public static class LocationsPreset
class LocationsResource (line 50) | public class LocationsResource
method GetLocationsOffline (line 92) | public static List<Location> GetLocationsOffline() => _offlineData;
method FetchLocations (line 94) | public static async Task<List<Location>> FetchLocations()
method InternalFetchLocations (line 108) | private static async Task<IEnumerable<Location>> InternalFetchLocations()
FILE: KHSave.SaveEditor.Ff7Remake/Models/BgmModel.cs
class BgmModel (line 3) | public class BgmModel
FILE: KHSave.SaveEditor.Ff7Remake/Models/ChapterCharacterEntryModel.cs
class ChapterCharacterEntryModel (line 31) | public class ChapterCharacterEntryModel :
method ChapterCharacterEntryModel (line 37) | public ChapterCharacterEntryModel(ChunkChapter chapter, int characterI...
FILE: KHSave.SaveEditor.Ff7Remake/Models/ChapterEntryModel.cs
class ChapterEntryModel (line 33) | public class ChapterEntryModel : BaseNotifyPropertyChanged
method ChapterEntryModel (line 38) | public ChapterEntryModel(ChunkChapter chapter, int index, Vector3f clo...
FILE: KHSave.SaveEditor.Ff7Remake/Models/ChapterObjectEntry.cs
class ChapterObjectEntry (line 26) | public class ChapterObjectEntry : BaseNotifyPropertyChanged
method ChapterObjectEntry (line 30) | public ChapterObjectEntry(ChapterObject chapterObject, IEnumerable<Cha...
method ToString (line 78) | public override string ToString() => _chapterObject.ToString();
FILE: KHSave.SaveEditor.Ff7Remake/Models/CharacterEntryModel.cs
class CharacterEntryModel (line 30) | public class CharacterEntryModel
method CharacterEntryModel (line 38) | public CharacterEntryModel(SaveFf7Remake save, int index, EquipmentsVi...
FILE: KHSave.SaveEditor.Ff7Remake/Models/ChunkEntryModel.cs
class ChunkEntryModel (line 32) | public class ChunkEntryModel
method ChunkEntryModel (line 44) | public ChunkEntryModel(SaveFf7Remake save, IRefreshUi refreshUi, Chunk...
method Import (line 75) | private void Import(string fileName)
method Export (line 93) | private void Export(string fileName)
method ToString (line 99) | public override string ToString() =>
FILE: KHSave.SaveEditor.Ff7Remake/Models/EquipmentEntryModel.cs
class EquipmentEntryModel (line 37) | public class EquipmentEntryModel : BaseNotifyPropertyChanged, SearchEngi...
method EquipmentEntryModel (line 44) | public EquipmentEntryModel(int index, WeaponFound[] weaponFound, Mater...
method GetMateriaIcon (line 183) | private ImageSource GetMateriaIcon(int index)
method GetFirstEmptyIndexSlot (line 193) | private int GetFirstEmptyIndexSlot()
FILE: KHSave.SaveEditor.Ff7Remake/Models/InventroyEntryModel.cs
class InventroyEntryModel (line 36) | public class InventroyEntryModel :
method InventroyEntryModel (line 43) | public InventroyEntryModel(Inventory inventory)
FILE: KHSave.SaveEditor.Ff7Remake/Models/ItemModel.cs
class ItemModel (line 9) | public class ItemModel
method ItemModel (line 13) | public ItemModel(ItemsPreset.ItemProperty itemProperty)
method GetItemModels (line 22) | public static IEnumerable<ItemModel> GetItemModels() =>
FILE: KHSave.SaveEditor.Ff7Remake/Models/MateriaEntryModel.cs
class MateriaEntryModel (line 34) | public class MateriaEntryModel :
method MateriaEntryModel (line 41) | public MateriaEntryModel(SaveFf7Remake save, Materia materia)
method GetFirstEmptyIndexSlot (line 91) | private int GetFirstEmptyIndexSlot()
FILE: KHSave.SaveEditor.Ff7Remake/ViewModels/ChaptersViewModel.cs
class ChaptersViewModel (line 28) | public class ChaptersViewModel : GenericListModel<ChapterEntryModel>
method ChaptersViewModel (line 30) | public ChaptersViewModel(SaveFf7Remake save) :
method ChaptersViewModel (line 36) | private ChaptersViewModel(IEnumerable<ChapterEntryModel> list) :
method OnSelectedItem (line 44) | protected override void OnSelectedItem(ChapterEntryModel item)
method OnNewItem (line 51) | protected override ChapterEntryModel OnNewItem() =>
method GetChapterIdFromChapterNumber (line 54) | private static int GetChapterIdFromChapterNumber(int chapterNumber)
FILE: KHSave.SaveEditor.Ff7Remake/ViewModels/CharactersViewModel.cs
class CharactersViewModel (line 29) | public class CharactersViewModel : GenericListModel<CharacterEntryModel>
method CharactersViewModel (line 33) | public CharactersViewModel(SaveFf7Remake save, EquipmentsViewModel wea...
method CharactersViewModel (line 39) | private CharactersViewModel(IEnumerable<CharacterEntryModel> list) :
method OnSelectedItem (line 46) | protected override void OnSelectedItem(CharacterEntryModel item)
method OnNewItem (line 53) | protected override CharacterEntryModel OnNewItem() =>
FILE: KHSave.SaveEditor.Ff7Remake/ViewModels/DeveloperViewModel.cs
class DeveloperViewModel (line 31) | public class DeveloperViewModel : GenericListModel<ChunkEntryModel>
method DeveloperViewModel (line 37) | public DeveloperViewModel(SaveFf7Remake save, IRefreshUi refreshUi) :
method OnSelectedItem (line 87) | protected override void OnSelectedItem(ChunkEntryModel item)
method OnNewItem (line 94) | protected override ChunkEntryModel OnNewItem() =>
FILE: KHSave.SaveEditor.Ff7Remake/ViewModels/EquipmentsViewModel.cs
class EquipmentsViewModel (line 30) | public class EquipmentsViewModel : GenericListModel<EquipmentEntryModel>
method EquipmentsViewModel (line 34) | public EquipmentsViewModel(WeaponFound[] weaponFound, IEnumerable<Mate...
method EquipmentsViewModel (line 39) | private EquipmentsViewModel(IEnumerable<EquipmentEntryModel> list) :
method AdditionalFilter (line 56) | private bool AdditionalFilter(string searchTerm, EquipmentEntryModel obj)
method OnSelectedItem (line 64) | protected override void OnSelectedItem(EquipmentEntryModel item)
method OnNewItem (line 71) | protected override EquipmentEntryModel OnNewItem() =>
FILE: KHSave.SaveEditor.Ff7Remake/ViewModels/FF7RMainViewModel.cs
class FF7RMainViewModel (line 27) | public class FF7RMainViewModel : BaseNotifyPropertyChanged, IRefreshUi, ...
method RefreshUi (line 53) | public void RefreshUi()
method OpenStream (line 82) | public void OpenStream(Stream stream)
method WriteToStream (line 88) | public void WriteToStream(Stream stream) =>
FILE: KHSave.SaveEditor.Ff7Remake/ViewModels/GlobalViewModel.cs
class GlobalViewModel (line 28) | public class GlobalViewModel : BaseNotifyPropertyChanged
method GlobalViewModel (line 32) | public GlobalViewModel(SaveFf7Remake save)
FILE: KHSave.SaveEditor.Ff7Remake/ViewModels/InventoryViewModel.cs
class InventoryViewModel (line 29) | public class InventoryViewModel : GenericListModel<InventroyEntryModel>
method InventoryViewModel (line 33) | public InventoryViewModel(SaveFf7Remake save) :
method InventoryViewModel (line 38) | private InventoryViewModel(IEnumerable<InventroyEntryModel> list) :
method OnSelectedItem (line 55) | protected override void OnSelectedItem(InventroyEntryModel item)
method OnNewItem (line 62) | protected override InventroyEntryModel OnNewItem() =>
FILE: KHSave.SaveEditor.Ff7Remake/ViewModels/MateriaViewModel.cs
class MateriaViewModel (line 29) | public class MateriaViewModel : GenericListModel<MateriaEntryModel>
method MateriaViewModel (line 34) | public MateriaViewModel(SaveFf7Remake save) :
method MateriaViewModel (line 40) | private MateriaViewModel(IEnumerable<MateriaEntryModel> list) :
method Order (line 57) | private static int Order(MateriaEntryModel materia)
method OnSelectedItem (line 64) | protected override void OnSelectedItem(MateriaEntryModel item)
method OnNewItem (line 71) | protected override MateriaEntryModel OnNewItem() =>
FILE: KHSave.SaveEditor.Ff7Remake/ViewModels/TeleportViewModel.cs
class TeleportViewModel (line 32) | public class TeleportViewModel : BaseNotifyPropertyChanged
method TeleportViewModel (line 44) | public TeleportViewModel(ChapterCharacterEntryModel entry)
FILE: KHSave.SaveEditor.Ff7Remake/ViewModels/Unknown1ViewModel.cs
class Unknown1ViewModel (line 30) | public class Unknown1ViewModel : BaseNotifyPropertyChanged
method Unknown1ViewModel (line 35) | public Unknown1ViewModel(SaveFf7Remake save)
FILE: KHSave.SaveEditor.Ff7Remake/ViewModels/Unknown2ViewModel.cs
class Unknown2ViewModel (line 29) | public class Unknown2ViewModel : BaseNotifyPropertyChanged
method Unknown2ViewModel (line 34) | public Unknown2ViewModel(SaveFf7Remake save)
FILE: KHSave.SaveEditor.Ff7Remake/ViewModels/Unknown3ViewModel.cs
class Unknown3ViewModel (line 30) | public class Unknown3ViewModel : BaseNotifyPropertyChanged
method Unknown3ViewModel (line 35) | public Unknown3ViewModel(SaveFf7Remake save)
FILE: KHSave.SaveEditor.Ff7Remake/Views/ChapterEntryView.xaml.cs
class ChapterEntryView (line 21) | public partial class ChapterEntryView : UserControl
method ChapterEntryView (line 23) | public ChapterEntryView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/ChapterMainView.xaml.cs
class ChapterMainView (line 8) | public partial class ChapterMainView : UserControl
method ChapterMainView (line 10) | public ChapterMainView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/ChapterObjectsView.xaml.cs
class ChapterObjectsView (line 8) | public partial class ChapterObjectsView : UserControl
method ChapterObjectsView (line 10) | public ChapterObjectsView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/ChapterPlayableView.xaml.cs
class ChapterPlayableView (line 8) | public partial class ChapterPlayableView : UserControl
method ChapterPlayableView (line 10) | public ChapterPlayableView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/ChaptersView.xaml.cs
class ChaptersView (line 21) | public partial class ChaptersView : UserControl
method ChaptersView (line 23) | public ChaptersView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/CharacterEntryView.xaml.cs
class CharacterEntryView (line 21) | public partial class CharacterEntryView : UserControl
method CharacterEntryView (line 23) | public CharacterEntryView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/CharactersView.xaml.cs
class CharactersView (line 19) | public partial class CharactersView : UserControl
method CharactersView (line 21) | public CharactersView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/DeveloperView.xaml.cs
class DeveloperView (line 8) | public partial class DeveloperView : UserControl
method DeveloperView (line 10) | public DeveloperView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/EquipmentEntryView.xaml.cs
class EquipmentEntryView (line 21) | public partial class EquipmentEntryView : UserControl
method EquipmentEntryView (line 23) | public EquipmentEntryView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/EquipmentsView.xaml.cs
class EquipmentsView (line 8) | public partial class EquipmentsView : UserControl
method EquipmentsView (line 10) | public EquipmentsView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/FF7RMainView.xaml.cs
class FF7RMainView (line 9) | public partial class FF7RMainView : UserControl
method FF7RMainView (line 11) | public FF7RMainView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/GlobalView.xaml.cs
class GlobalView (line 8) | public partial class GlobalView : UserControl
method GlobalView (line 10) | public GlobalView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/InventoryEntryView.xaml.cs
class InventoryEntryView (line 9) | public partial class InventoryEntryView : UserControl
method InventoryEntryView (line 11) | public InventoryEntryView()
method Hyperlink_RequestNavigate (line 16) | private void Hyperlink_RequestNavigate(object sender, System.Windows.N...
FILE: KHSave.SaveEditor.Ff7Remake/Views/InventoryView.xaml.cs
class InventoryView (line 8) | public partial class InventoryView : UserControl
method InventoryView (line 10) | public InventoryView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/MateriaEntryView.xaml.cs
class MateriaEntryView (line 8) | public partial class MateriaEntryView : UserControl
method MateriaEntryView (line 10) | public MateriaEntryView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/MateriaView.xaml.cs
class MateriaView (line 21) | public partial class MateriaView : UserControl
method MateriaView (line 23) | public MateriaView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/PositionView.xaml.cs
class PositionView (line 8) | public partial class PositionView : UserControl
method PositionView (line 10) | public PositionView()
FILE: KHSave.SaveEditor.Ff7Remake/Views/TeleportWindow.xaml.cs
class TeleportWindow (line 11) | public partial class TeleportWindow : Window
method TeleportWindow (line 13) | public TeleportWindow(ChapterCharacterEntryModel chapterCharacter)
method Hyperlink_RequestNavigate (line 19) | private void Hyperlink_RequestNavigate(object sender, System.Windows.N...
FILE: KHSave.SaveEditor.Ff7Remake/Views/Unknown1View.xaml.cs
class Unknown1View (line 21) | public partial class Unknown1View : UserControl
method Unknown1View (line 23) | public Unknown1View()
FILE: KHSave.SaveEditor.Ff7Remake/Views/Unknown2View.xaml.cs
class Unknown2View (line 8) | public partial class Unknown2View : UserControl
method Unknown2View (line 10) | public Unknown2View()
FILE: KHSave.SaveEditor.Ff7Remake/Views/Unknown3View.xaml.cs
class Unknown3View (line 21) | public partial class Unknown3View : UserControl
method Unknown3View (line 23) | public Unknown3View()
FILE: KHSave.SaveEditor.Kh02/MainView.xaml.cs
class MainView (line 8) | public partial class MainView : UserControl
method MainView (line 10) | public MainView()
FILE: KHSave.SaveEditor.Kh02/Models/SlotListModel.cs
class SlotListModel (line 10) | public class SlotListModel : GenericListModel<SlotViewModel>
method SlotListModel (line 12) | public SlotListModel(SaveKh02 save) :
method SlotListModel (line 16) | public SlotListModel(IEnumerable<Slot> slots) :
method SlotListModel (line 20) | public SlotListModel(IEnumerable<SlotViewModel> slots) :
method OnNewItem (line 24) | protected override SlotViewModel OnNewItem()
FILE: KHSave.SaveEditor.Kh02/ViewModels/GlobalSystemViewModel.cs
class GlobalSystemViewModel (line 23) | public class GlobalSystemViewModel
method GlobalSystemViewModel (line 27) | public GlobalSystemViewModel(SaveKh02 save)
FILE: KHSave.SaveEditor.Kh02/ViewModels/Kh02ViewModel.cs
class Kh02ViewModel (line 28) | public class Kh02ViewModel : BaseNotifyPropertyChanged, IRefreshUi, IOpe...
method Kh02ViewModel (line 51) | public Kh02ViewModel()
method RefreshUi (line 55) | public void RefreshUi()
method OpenStream (line 67) | public void OpenStream(Stream stream)
method WriteToStream (line 73) | public void WriteToStream(Stream stream) => Save.Write(stream);
FILE: KHSave.SaveEditor.Kh02/ViewModels/SlotViewModel.cs
class SlotViewModel (line 29) | public class SlotViewModel : GenericEntryModel<string, SlotViewModel>
method SlotViewModel (line 34) | public SlotViewModel(int slotIndex, Slot slot)
FILE: KHSave.SaveEditor.Kh02/Views/SystemView.xaml.cs
class SystemView (line 21) | public partial class SystemView : UserControl
method SystemView (line 23) | public SystemView()
FILE: KHSave.SaveEditor.Kh1/Interfaces/IGetAbilities.cs
type IGetAbilities (line 6) | public interface IGetAbilities
FILE: KHSave.SaveEditor.Kh1/MainView.xaml.cs
class MainView (line 8) | public partial class MainView : UserControl
method MainView (line 10) | public MainView()
FILE: KHSave.SaveEditor.Kh1/Models/InventoryItemModel.cs
class InventoryItemModel (line 9) | public class InventoryItemModel :
method InventoryItemModel (line 17) | public InventoryItemModel(int index, byte[] inventoryCount)
FILE: KHSave.SaveEditor.Kh1/Service/EquipmentManagerFactory.cs
class EquipmentManagerFactory (line 9) | public static class EquipmentManagerFactory
class AccessoryEquipmentManager (line 11) | private class AccessoryEquipmentManager : IEquipmentManager
method AccessoryEquipmentManager (line 15) | internal AccessoryEquipmentManager(Character character)
method GetEquipment (line 22) | public EquipmentType GetEquipment(byte index) => (EquipmentType)char...
method SetEquipment (line 23) | public void SetEquipment(byte index, EquipmentType equipment) => cha...
class ConsumableEquipmentManager (line 26) | private class ConsumableEquipmentManager : IEquipmentManager
method ConsumableEquipmentManager (line 30) | internal ConsumableEquipmentManager(Character character)
method GetEquipment (line 37) | public EquipmentType GetEquipment(byte index) => (EquipmentType)char...
method SetEquipment (line 38) | public void SetEquipment(byte index, EquipmentType equipment) => cha...
method ForAccessory (line 41) | public static IEquipmentManager ForAccessory(Character character) => n...
method ForConsumable (line 42) | public static IEquipmentManager ForConsumable(Character character) => ...
FILE: KHSave.SaveEditor.Kh1/Service/IEquipmentManager.cs
type IEquipmentManager (line 5) | public interface IEquipmentManager
method GetEquipment (line 9) | EquipmentType GetEquipment(byte index);
method SetEquipment (line 10) | void SetEquipment(byte index, EquipmentType equipment);
FILE: KHSave.SaveEditor.Kh1/ViewModels/AbilityViewModel.cs
class AbilityViewModel (line 7) | public class AbilityViewModel
method AbilityViewModel (line 13) | public AbilityViewModel(byte[] abilities, int index, IGetAbilities get...
FILE: KHSave.SaveEditor.Kh1/ViewModels/EquipmentItemsViewModel.cs
class EquipmentItemsViewModel (line 12) | public class EquipmentItemsViewModel
class EquipmentItemViewModel (line 16) | public class EquipmentItemViewModel : BaseNotifyPropertyChanged
method EquipmentItemViewModel (line 21) | internal EquipmentItemViewModel(EquipmentItemsViewModel vm, byte index)
method InvalidateEnabled (line 44) | public void InvalidateEnabled()
method EquipmentItemsViewModel (line 51) | public EquipmentItemsViewModel(IEquipmentManager equipmentManager)
method IsEnabled (line 81) | public bool IsEnabled(byte index) => equipmentManager.Count > index;
method SetEnabled (line 82) | public void SetEnabled(byte index, bool enabled)
method GetEquipment (line 106) | public EquipmentType GetEquipment(byte index) => equipmentManager.GetE...
method SetEquipment (line 107) | public void SetEquipment(byte index, EquipmentType equipment) => equip...
FILE: KHSave.SaveEditor.Kh1/ViewModels/InventoryViewModel.cs
class InventoryViewModel (line 9) | public class InventoryViewModel : GenericListModel<InventoryItemModel>
method InventoryViewModel (line 13) | public InventoryViewModel(ISaveKh1 save) :
FILE: KHSave.SaveEditor.Kh1/ViewModels/Kh1ViewModel.cs
class Kh1ViewModel (line 13) | public class Kh1ViewModel : BaseNotifyPropertyChanged,
method Kh1ViewModel (line 21) | public Kh1ViewModel()
method RefreshUi (line 31) | public void RefreshUi()
method OpenStream (line 42) | public void OpenStream(Stream stream)
method WriteToStream (line 56) | public void WriteToStream(Stream stream) => Save.Write(stream);
FILE: KHSave.SaveEditor.Kh1/ViewModels/PlayerViewModel.cs
class PlayerViewModel (line 14) | public class PlayerViewModel
method PlayerViewModel (line 19) | public PlayerViewModel(Character character, int index, IGetAbilities g...
FILE: KHSave.SaveEditor.Kh1/ViewModels/PlayersViewModel.cs
class PlayersViewModel (line 11) | public class PlayersViewModel : GenericListModel<PlayerViewModel>
method PlayersViewModel (line 15) | public PlayersViewModel(ISaveKh1 save, IGetAbilities getAbilities) :
method PlayersViewModel (line 21) | public PlayersViewModel(IEnumerable<Character> list, IGetAbilities get...
method PlayersViewModel (line 27) | public PlayersViewModel(IEnumerable<PlayerViewModel> list) :
method OnSelectedItem (line 36) | protected override void OnSelectedItem(PlayerViewModel item)
method OnNewItem (line 43) | protected override PlayerViewModel OnNewItem()
FILE: KHSave.SaveEditor.Kh1/ViewModels/SystemViewModel.cs
class SystemViewModel (line 11) | public class SystemViewModel
method SystemViewModel (line 16) | public SystemViewModel(ISaveKh1 save, IGetAbilities getAbilities)
method GetDifficulty (line 59) | private List<GenericEntryModel<string, byte>> GetDifficulty<T>()
FILE: KHSave.SaveEditor.Kh1/Views/AbilityView.xaml.cs
class AbilityView (line 21) | public partial class AbilityView : UserControl
method AbilityView (line 23) | public AbilityView()
FILE: KHSave.SaveEditor.Kh1/Views/InventoryView.xaml.cs
class InventoryView (line 21) | public partial class InventoryView : UserControl
method InventoryView (line 23) | public InventoryView()
FILE: KHSave.SaveEditor.Kh1/Views/PlayerEquipmentView.xaml.cs
class PlayerEquipmentView (line 8) | public partial class PlayerEquipmentView : UserControl
method PlayerEquipmentView (line 10) | public PlayerEquipmentView()
FILE: KHSave.SaveEditor.Kh1/Views/PlayerView.xaml.cs
class PlayerView (line 21) | public partial class PlayerView : UserControl
method PlayerView (line 23) | public PlayerView()
FILE: KHSave.SaveEditor.Kh1/Views/PlayersView.xaml.cs
class PlayersView (line 21) | public partial class PlayersView : UserControl
method PlayersView (line 23) | public PlayersView()
FILE: KHSave.SaveEditor.Kh1/Views/SystemView.xaml.cs
class SystemView (line 8) | public partial class SystemView : UserControl
method SystemView (line 10) | public SystemView()
FILE: KHSave.SaveEditor.Kh2/Data/Rooms.cs
class Data (line 7) | public static partial class Data
method GetRoom (line 366) | public static RoomModel GetRoom(int world, int room) =>
FILE: KHSave.SaveEditor.Kh2/Interfaces/IResourceGetter.cs
type IResourceGetter (line 7) | public interface IResourceGetter
FILE: KHSave.SaveEditor.Kh2/MainView.xaml.cs
class MainView (line 8) | public partial class MainView : UserControl
method MainView (line 10) | public MainView()
FILE: KHSave.SaveEditor.Kh2/Models/AbilityModel.cs
class AbilityModel (line 10) | public class AbilityModel : BaseNotifyPropertyChanged
method AbilityModel (line 16) | public AbilityModel(int index, ushort[] abilities, IResourceGetter res...
FILE: KHSave.SaveEditor.Kh2/Models/InventoryItemModel.cs
class InventoryItemModel (line 9) | public class InventoryItemModel :
method InventoryItemModel (line 17) | public InventoryItemModel(int index, byte[] inventoryCount)
FILE: KHSave.SaveEditor.Kh2/Models/MapScriptModel.cs
class MapScriptModel (line 7) | public class MapScriptModel
method MapScriptModel (line 13) | public MapScriptModel(WorldType world, int placeIndex, IPlaceScript pl...
FILE: KHSave.SaveEditor.Kh2/Models/ProgressModel.cs
class ProgressModel (line 8) | public class ProgressModel : BaseNotifyPropertyChanged, SearchEngine.IName
method ProgressModel (line 13) | public ProgressModel(int worldId, Progress progress, int flag)
FILE: KHSave.SaveEditor.Kh2/Models/RoomModel.cs
class RoomModel (line 7) | public class RoomModel
method RoomModel (line 15) | public RoomModel(WorldType world, int roomIndex, GameType gameType, st...
method ToString (line 23) | public override string ToString()
FILE: KHSave.SaveEditor.Kh2/Service/EquipmentManagerFactory.cs
class EquipmentManagerFactory (line 7) | public static class EquipmentManagerFactory
class ArmorEquipmentManager (line 9) | private class ArmorEquipmentManager : IEquipmentManager
method ArmorEquipmentManager (line 13) | internal ArmorEquipmentManager(ICharacter character)
method GetEquipment (line 20) | public EquipmentType GetEquipment(uint index) => (EquipmentType)char...
method SetEquipment (line 21) | public void SetEquipment(uint index, EquipmentType equipment) => cha...
class AccessoryEquipmentManager (line 24) | private class AccessoryEquipmentManager : IEquipmentManager
method AccessoryEquipmentManager (line 28) | internal AccessoryEquipmentManager(ICharacter character)
method GetEquipment (line 35) | public EquipmentType GetEquipment(uint index) => (EquipmentType)char...
method SetEquipment (line 36) | public void SetEquipment(uint index, EquipmentType equipment) => cha...
class ConsumableEquipmentManager (line 39) | private class ConsumableEquipmentManager : IEquipmentManager
method ConsumableEquipmentManager (line 43) | internal ConsumableEquipmentManager(ICharacter character)
method GetEquipment (line 50) | public EquipmentType GetEquipment(uint index) => (EquipmentType)char...
method SetEquipment (line 51) | public void SetEquipment(uint index, EquipmentType equipment) => cha...
method ForArmor (line 54) | public static IEquipmentManager ForArmor(ICharacter character) => new ...
method ForAccessory (line 55) | public static IEquipmentManager ForAccessory(ICharacter character) => ...
method ForConsumable (line 56) | public static IEquipmentManager ForConsumable(ICharacter character) =>...
FILE: KHSave.SaveEditor.Kh2/Service/IEquipmentManager.cs
type IEquipmentManager (line 5) | public interface IEquipmentManager
method GetEquipment (line 9) | EquipmentType GetEquipment(uint index);
method SetEquipment (line 10) | void SetEquipment(uint index, EquipmentType equipment);
FILE: KHSave.SaveEditor.Kh2/ViewModels/CharacterViewModel.cs
class CharacterViewModel (line 33) | public class CharacterViewModel
method CharacterViewModel (line 39) | public CharacterViewModel(ICharacter character, int index, IResourceGe...
FILE: KHSave.SaveEditor.Kh2/ViewModels/CharactersViewModel.cs
class CharactersViewModel (line 29) | public class CharactersViewModel : GenericListModel<CharacterViewModel>
method CharactersViewModel (line 33) | public CharactersViewModel(ISaveKh2 save, IResourceGetter resourceGett...
method CharactersViewModel (line 39) | public CharactersViewModel(IEnumerable<CharacterViewModel> list) :
method OnSelectedItem (line 48) | protected override void OnSelectedItem(CharacterViewModel item)
method OnNewItem (line 55) | protected override CharacterViewModel OnNewItem()
FILE: KHSave.SaveEditor.Kh2/ViewModels/DriveFormsViewModel.cs
class DriveFormViewModel (line 33) | public class DriveFormViewModel : BaseNotifyPropertyChanged
method DriveFormViewModel (line 39) | public DriveFormViewModel(IDriveForm driveForm, DriveFormType type, IR...
class DriveFormsViewModel (line 57) | public class DriveFormsViewModel : GenericListModel<DriveFormViewModel>
method DriveFormsViewModel (line 61) | public DriveFormsViewModel(ISaveKh2 save, IResourceGetter resourceGett...
method DriveFormsViewModel (line 67) | public DriveFormsViewModel(IEnumerable<DriveFormViewModel> list) :
method OnSelectedItem (line 76) | protected override void OnSelectedItem(DriveFormViewModel item)
method OnNewItem (line 83) | protected override DriveFormViewModel OnNewItem()
method GetDriveFormType (line 88) | private static DriveFormType GetDriveFormType(int index, bool isFinalMix)
FILE: KHSave.SaveEditor.Kh2/ViewModels/EquipmentItemsViewModel.cs
class EquipmentItemsViewModel (line 12) | public class EquipmentItemsViewModel
class EquipmentItemViewModel (line 16) | public class EquipmentItemViewModel : BaseNotifyPropertyChanged
method EquipmentItemViewModel (line 22) | internal EquipmentItemViewModel(EquipmentItemsViewModel vm, uint ind...
method InvalidateEnabled (line 45) | public void InvalidateEnabled()
method EquipmentItemsViewModel (line 52) | public EquipmentItemsViewModel(IEquipmentManager equipmentManager, IRe...
method IsEnabled (line 74) | public bool IsEnabled(uint index) => equipmentManager.Count > index;
method SetEnabled (line 75) | public void SetEnabled(uint index, bool enabled)
method GetEquipment (line 95) | public EquipmentType GetEquipment(uint index) => equipmentManager.GetE...
method SetEquipment (line 96) | public void SetEquipment(uint index, EquipmentType equipment) => equip...
FILE: KHSave.SaveEditor.Kh2/ViewModels/InventoryViewModel.cs
class InventoryViewModel (line 9) | public class InventoryViewModel : GenericListModel<InventoryItemModel>
method InventoryViewModel (line 13) | public InventoryViewModel(ISaveKh2 save) :
FILE: KHSave.SaveEditor.Kh2/ViewModels/Kh2ViewModel.cs
class Kh2ViewModel (line 34) | public class Kh2ViewModel : BaseNotifyPropertyChanged, IRefreshUi, IOpen...
method Kh2ViewModel (line 58) | public Kh2ViewModel()
method RefreshUi (line 75) | public void RefreshUi()
method OpenStream (line 95) | public void OpenStream(Stream stream)
method WriteToStream (line 108) | public void WriteToStream(Stream stream) => SaveKh2.Write(stream, save);
method GetSave (line 110) | public object GetSave() => save;
FILE: KHSave.SaveEditor.Kh2/ViewModels/ProgressViewModel.cs
class ProgressViewModel (line 13) | public class ProgressViewModel : GenericListModel<ProgressModel>
method ProgressViewModel (line 17) | public ProgressViewModel(Progress[] progresses) :
method AdditionalFilters (line 42) | private bool AdditionalFilters(string searchTerm, ProgressModel item) =>
method GetProgressModels (line 48) | private static IEnumerable<ProgressModel> GetProgressModels(Progress[]...
FILE: KHSave.SaveEditor.Kh2/ViewModels/RoomViewModel.cs
class RoomViewModel (line 7) | public class RoomViewModel
method RoomViewModel (line 9) | public RoomViewModel(RoomModel room)
FILE: KHSave.SaveEditor.Kh2/ViewModels/RoomVisitedViewModel.cs
class RoomVisitedViewModel (line 9) | public class RoomVisitedViewModel : BaseNotifyPropertyChanged
class RoomVisitedEntry (line 11) | public class RoomVisitedEntry
method RoomVisitedEntry (line 17) | internal RoomVisitedEntry(RoomModel roomModel, byte[] rooms, int index)
method RoomVisitedViewModel (line 42) | public RoomVisitedViewModel(ISaveKh2 save)
FILE: KHSave.SaveEditor.Kh2/ViewModels/SystemViewModel.cs
class SystemViewModel (line 29) | public class SystemViewModel : BaseNotifyPropertyChanged
method SystemViewModel (line 33) | public SystemViewModel(ISaveKh2 save)
FILE: KHSave.SaveEditor.Kh2/ViewModels/WorldsViewModel.cs
class WorldViewModel (line 14) | public class WorldViewModel : BaseNotifyPropertyChanged
method WorldViewModel (line 19) | public WorldViewModel(ISaveKh2 save, int index)
class WorldsViewModel (line 50) | public class WorldsViewModel : GenericListModel<WorldViewModel>
method WorldsViewModel (line 52) | public WorldsViewModel(ISaveKh2 save) :
method WorldsViewModel (line 56) | public WorldsViewModel(IEnumerable<WorldViewModel> list) :
method OnSelectedItem (line 63) | protected override void OnSelectedItem(WorldViewModel item)
method OnNewItem (line 70) | protected override WorldViewModel OnNewItem()
FILE: KHSave.SaveEditor.Kh2/Views/DriveFormView.xaml.cs
class DriveFormView (line 21) | public partial class DriveFormView : UserControl
method DriveFormView (line 23) | public DriveFormView()
FILE: KHSave.SaveEditor.Kh2/Views/DriveFormsView.xaml.cs
class DriveFormsView (line 21) | public partial class DriveFormsView : UserControl
method DriveFormsView (line 23) | public DriveFormsView()
FILE: KHSave.SaveEditor.Kh2/Views/InventoryView.xaml.cs
class InventoryView (line 8) | public partial class InventoryView : UserControl
method InventoryView (line 10) | public InventoryView()
FILE: KHSave.SaveEditor.Kh2/Views/PlayerEquipmentView.xaml.cs
class PlayerEquipmentView (line 8) | public partial class PlayerEquipmentView : UserControl
method PlayerEquipmentView (line 10) | public PlayerEquipmentView()
FILE: KHSave.SaveEditor.Kh2/Views/PlayerView.xaml.cs
class PlayerView (line 21) | public partial class PlayerView : UserControl
method PlayerView (line 23) | public PlayerView()
FILE: KHSave.SaveEditor.Kh2/Views/PlayersView.xaml.cs
class PlayersView (line 21) | public partial class PlayersView : UserControl
method PlayersView (line 23) | public PlayersView()
FILE: KHSave.SaveEditor.Kh2/Views/ProgressView.xaml.cs
class ProgressView (line 8) | public partial class ProgressView : UserControl
method ProgressView (line 10) | public ProgressView()
FILE: KHSave.SaveEditor.Kh2/Views/RoomVisitedView.xaml.cs
class RoomVisitedView (line 8) | public partial class RoomVisitedView : UserControl
method RoomVisitedView (line 10) | public RoomVisitedView()
FILE: KHSave.SaveEditor.Kh2/Views/SystemView.xaml.cs
class SystemView (line 8) | public partial class SystemView : UserControl
method SystemView (line 10) | public SystemView()
FILE: KHSave.SaveEditor.Kh2/Views/WorldView.xaml.cs
class WorldView (line 21) | public partial class WorldView : UserControl
method WorldView (line 23) | public WorldView()
FILE: KHSave.SaveEditor.Kh2/Views/WorldsView.xaml.cs
class WorldsView (line 21) | public partial class WorldsView : UserControl
method WorldsView (line 23) | public WorldsView()
FILE: KHSave.SaveEditor.Kh3/MainView.xaml.cs
class MainView (line 8) | public partial class MainView : UserControl
method MainView (line 10) | public MainView()
FILE: KHSave.SaveEditor.Kh3/Models/AttractionRecordItemModel.cs
class AttractionRecordItemModel (line 25) | public class AttractionRecordItemModel<T>
method AttractionRecordItemModel (line 32) | public AttractionRecordItemModel(List<short> itemsTotalUses, List<int>...
FILE: KHSave.SaveEditor.Kh3/Models/EquipmentItemEntryViewModel.cs
class EquipmentItemEntryViewModel (line 29) | public class EquipmentItemEntryViewModel<T> : BaseNotifyPropertyChanged
method EquipmentItemEntryViewModel (line 51) | public EquipmentItemEntryViewModel(EquipmentItem item)
method EquipmentItemEntryViewModel (line 84) | public EquipmentItemEntryViewModel(EquipmentItem item)
method DisplayItemType (line 94) | public void DisplayItemType(ItemType itemType)
method NewList (line 134) | private object NewList<T>()
class EquipmentItemEntryViewModel (line 63) | public class EquipmentItemEntryViewModel : BaseNotifyPropertyChanged
method EquipmentItemEntryViewModel (line 51) | public EquipmentItemEntryViewModel(EquipmentItem item)
method EquipmentItemEntryViewModel (line 84) | public EquipmentItemEntryViewModel(EquipmentItem item)
method DisplayItemType (line 94) | public void DisplayItemType(ItemType itemType)
method NewList (line 134) | private object NewList<T>()
FILE: KHSave.SaveEditor.Kh3/Models/FlantasticModel.cs
class FlantasticModel (line 5) | public class FlantasticModel
method FlantasticModel (line 9) | public FlantasticModel(string name, FlantasticRecord flantasticRecord)
FILE: KHSave.SaveEditor.Kh3/Models/InventoryItemViewModel.cs
class InventoryItemViewModel (line 28) | public class InventoryItemViewModel :
method InventoryItemViewModel (line 35) | public InventoryItemViewModel(InventoryEntry inventoryEntry, int index)
FILE: KHSave.SaveEditor.Kh3/Models/MapViewModel.cs
class MapViewModel (line 3) | public class MapViewModel
method MapViewModel (line 8) | public MapViewModel(string id, Lib3.Presets.Presets.Map map)
FILE: KHSave.SaveEditor.Kh3/Models/MaterialModel.cs
class MaterialModel (line 27) | public class MaterialModel : EnumIconTypeModel<MaterialType>
method MaterialModel (line 32) | public MaterialModel(ISaveKh3 save, int index)
FILE: KHSave.SaveEditor.Kh3/Models/RecordAttractionListModel.cs
class RecordAttractionListModel (line 27) | public class RecordAttractionListModel<T> :
method RecordAttractionListModel (line 32) | public RecordAttractionListModel(List<short> list1, List<int> list2)
method RecordAttractionListModel (line 37) | public RecordAttractionListModel(IEnumerable<AttractionRecordItemModel...
method GetEnumerator (line 42) | public IEnumerator<AttractionRecordItemModel<T>> GetEnumerator()
method GetEnumerator (line 47) | IEnumerator IEnumerable.GetEnumerator()
method OnNewItem (line 52) | protected override AttractionRecordItemModel<T> OnNewItem()
FILE: KHSave.SaveEditor.Kh3/Models/RecordShotlockListModel.cs
class RecordShotlockListModel (line 27) | public class RecordShotlockListModel<T> :
method RecordShotlockListModel (line 32) | public RecordShotlockListModel(List<short> list1, List<short> list2)
method RecordShotlockListModel (line 37) | public RecordShotlockListModel(IEnumerable<ShotlockRecordItemModel<T>>...
method GetEnumerator (line 42) | public IEnumerator<ShotlockRecordItemModel<T>> GetEnumerator()
method GetEnumerator (line 47) | IEnumerator IEnumerable.GetEnumerator()
method OnNewItem (line 52) | protected override ShotlockRecordItemModel<T> OnNewItem()
FILE: KHSave.SaveEditor.Kh3/Models/ShotlockRecordItemModel.cs
class ShotlockRecordItemModel (line 25) | public class ShotlockRecordItemModel<T>
method ShotlockRecordItemModel (line 32) | public ShotlockRecordItemModel(List<short> itemsTotalUses, List<short>...
FILE: KHSave.SaveEditor.Kh3/Models/SpawnModel.cs
class SpawnModel (line 3) | public class SpawnModel
FILE: KHSave.SaveEditor.Kh3/ViewModels/AbilitiesViewModel.cs
class AbilitiesViewModel (line 31) | public class AbilitiesViewModel : GenericListModel<AbilityEntryViewModel>
method AbilitiesViewModel (line 33) | public AbilitiesViewModel(IEnumerable<Ability> list)
method AbilitiesViewModel (line 39) | public AbilitiesViewModel(IEnumerable<AbilityEntryViewModel> list)
method OnNewItem (line 47) | protected override AbilityEntryViewModel OnNewItem()
class AbilityEntryViewModel (line 53) | public class AbilityEntryViewModel : EnumIconTypeModel<AbilityType>
method AbilityEntryViewModel (line 57) | public AbilityEntryViewModel(Ability ability, int index)
method ToString (line 86) | public override string ToString()
FILE: KHSave.SaveEditor.Kh3/ViewModels/EquipmentItemsViewModel.cs
class EquipmentItemsViewModel (line 26) | public class EquipmentItemsViewModel<T>
method EquipmentItemsViewModel (line 38) | public EquipmentItemsViewModel(IReadOnlyList<EquipmentItem> items)
method EquipmentItemsViewModel (line 62) | public EquipmentItemsViewModel(IReadOnlyList<EquipmentItem> items)
class EquipmentItemsViewModel (line 51) | public class EquipmentItemsViewModel
method EquipmentItemsViewModel (line 38) | public EquipmentItemsViewModel(IReadOnlyList<EquipmentItem> items)
method EquipmentItemsViewModel (line 62) | public EquipmentItemsViewModel(IReadOnlyList<EquipmentItem> items)
FILE: KHSave.SaveEditor.Kh3/ViewModels/InventoryViewModel.cs
class InventoryViewModel (line 32) | public class InventoryViewModel : GenericListModel<InventoryItemViewModel>
method InventoryViewModel (line 58) | public InventoryViewModel(IEnumerable<InventoryEntry> list) :
method InventoryViewModel (line 62) | public InventoryViewModel(IEnumerable<InventoryItemViewModel> list) :
method ChangeSelectedItems (line 151) | public void ChangeSelectedItems()
method DoResearch (line 165) | private void DoResearch(int startIndex, int count = 100)
method GetForAll (line 173) | private static bool GetForAll<TModel, TValue>(IEnumerable<TModel> item...
method SetForAll (line 193) | private static void SetForAll<TModel, TValue>(IEnumerable<TModel> item...
method FilterByFlag (line 199) | private static bool FilterByFlag(string value, InventoryItemViewModel x)
method ContainsWord (line 216) | private static bool ContainsWord(string value, string contains) =>
method OnNewItem (line 219) | protected override InventoryItemViewModel OnNewItem()
FILE: KHSave.SaveEditor.Kh3/ViewModels/Kh3ViewModel.cs
class Kh3ViewModel (line 26) | public class Kh3ViewModel : BaseNotifyPropertyChanged, IRefreshUi, IOpen...
method Kh3ViewModel (line 40) | public Kh3ViewModel()
method RefreshUi (line 44) | public void RefreshUi()
method OpenStream (line 67) | public void OpenStream(Stream stream)
method WriteToStream (line 73) | public void WriteToStream(Stream stream) => Save.Write(stream);
FILE: KHSave.SaveEditor.Kh3/ViewModels/MaterialsViewModel.cs
class MaterialsViewModel (line 28) | public class MaterialsViewModel : GenericListModel<MaterialModel>
method MaterialsViewModel (line 30) | public MaterialsViewModel(ISaveKh3 save) :
method OnNewItem (line 36) | protected override MaterialModel OnNewItem()
FILE: KHSave.SaveEditor.Kh3/ViewModels/PartyViewModel.cs
class PartyViewModel (line 7) | public class PartyViewModel
method PartyViewModel (line 21) | public PartyViewModel(ISaveKh3 save)
FILE: KHSave.SaveEditor.Kh3/ViewModels/PhotoEntryViewModel.cs
class PhotoEntryViewModel (line 34) | public class PhotoEntryViewModel : BaseNotifyPropertyChanged
method PhotoEntryViewModel (line 51) | public PhotoEntryViewModel(PhotoEntry entry, int index)
method Export (line 96) | public void Export(string fileName)
method Import (line 105) | public void Import(string fileName)
method Delete (line 118) | public void Delete()
method CreateThumbnailImage (line 125) | private void CreateThumbnailImage()
FILE: KHSave.SaveEditor.Kh3/ViewModels/PhotosViewModel.cs
class PhotosViewModel (line 31) | public class PhotosViewModel : GenericListModel<PhotoEntryViewModel>
method PhotosViewModel (line 41) | public PhotosViewModel(IEnumerable<PhotoEntry> list) :
method PhotosViewModel (line 47) | public PhotosViewModel(IEnumerable<PhotoEntryViewModel> list) :
method OnNewItem (line 90) | protected override PhotoEntryViewModel OnNewItem()
FILE: KHSave.SaveEditor.Kh3/ViewModels/PlayerViewModel.cs
class PlayerViewModel (line 30) | public class PlayerViewModel : BaseNotifyPropertyChanged
method PlayerViewModel (line 35) | public PlayerViewModel(PlayableCharacter playableCharacter, int index)
FILE: KHSave.SaveEditor.Kh3/ViewModels/PlayersViewModel.cs
class PlayersViewModel (line 27) | public class PlayersViewModel : GenericListModel<PlayerViewModel>
method PlayersViewModel (line 29) | public PlayersViewModel(IEnumerable<PlayableCharacter> list) :
method PlayersViewModel (line 35) | public PlayersViewModel(IEnumerable<PlayerViewModel> list) :
method OnSelectedItem (line 44) | protected override void OnSelectedItem(PlayerViewModel item)
method OnNewItem (line 51) | protected override PlayerViewModel OnNewItem()
FILE: KHSave.SaveEditor.Kh3/ViewModels/RecordsViewModel.cs
class RecordsViewModel (line 27) | public partial class RecordsViewModel
method RecordsViewModel (line 98) | public RecordsViewModel(ISaveKh3 save)
method GetFlantasticModels (line 106) | private static IEnumerable<FlantasticModel> GetFlantasticModels(ISaveK...
FILE: KHSave.SaveEditor.Kh3/ViewModels/ShortcutsViewModel.cs
class ShortcutsViewModel (line 25) | public class ShortcutsViewModel
class ShortcutGroupViewModel (line 27) | public class ShortcutGroupViewModel
method ShortcutGroupViewModel (line 35) | public ShortcutGroupViewModel(ISaveKh3 save, int groupIndex)
method ShortcutsViewModel (line 59) | public ShortcutsViewModel(ISaveKh3 save)
FILE: KHSave.SaveEditor.Kh3/ViewModels/StoryViewModel.cs
class StoryViewModel (line 34) | public class StoryViewModel : GenericListModel<StoryEntryModel>
method StoryViewModel (line 36) | public StoryViewModel(ISaveKh3 save) :
method StoryViewModel (line 41) | public StoryViewModel(List<int> storyflags) :
method OnNewItem (line 47) | protected override StoryEntryModel OnNewItem()
class StoryCommand (line 53) | public class StoryCommand : RelayCommand
method StoryCommand (line 55) | public StoryCommand(
method ToString (line 94) | public override string ToString() => Name;
method ThrowConfirmationMessage (line 96) | private static bool ThrowConfirmationMessage(string name)
class StoryEntryModel (line 111) | public class StoryEntryModel : BaseNotifyPropertyChanged
method StoryEntryModel (line 118) | public StoryEntryModel(List<int> storyFlag, int index)
class StoryPresetModel (line 142) | public class StoryPresetModel : GenericListModel<EnumItemModel<int>>
method StoryPresetModel (line 144) | public StoryPresetModel(Dictionary<int, string> preset) :
method OnNewItem (line 152) | protected override EnumItemModel<int> OnNewItem()
FILE: KHSave.SaveEditor.Kh3/ViewModels/SystemViewModel.cs
class SystemViewModel (line 32) | public class SystemViewModel : BaseNotifyPropertyChanged
type RoomSpawnType (line 36) | public enum RoomSpawnType
method SystemViewModel (line 43) | public SystemViewModel(ISaveKh3 save)
FILE: KHSave.SaveEditor.Kh3/Views/EquipmentItemEntryView.xaml.cs
class EquipmentItemEntryView (line 8) | public partial class EquipmentItemEntryView : UserControl
method EquipmentItemEntryView (line 10) | public EquipmentItemEntryView()
FILE: KHSave.SaveEditor.Kh3/Views/EquipmentItemsView.xaml.cs
class EquipmentItemsView (line 8) | public partial class EquipmentItemsView : UserControl
method EquipmentItemsView (line 10) | public EquipmentItemsView()
FILE: KHSave.SaveEditor.Kh3/Views/InventoryView.xaml.cs
class InventoryView (line 10) | public partial class InventoryView : UserControl
method InventoryView (line 12) | public InventoryView()
method ListBox_SelectionChanged (line 17) | private void ListBox_SelectionChanged(object sender, SelectionChangedE...
FILE: KHSave.SaveEditor.Kh3/Views/MaterialsView.xaml.cs
class MaterialsView (line 8) | public partial class MaterialsView : UserControl
method MaterialsView (line 10) | public MaterialsView()
FILE: KHSave.SaveEditor.Kh3/Views/PartyView.xaml.cs
class PartyView (line 8) | public partial class PartyView : UserControl
method PartyView (line 10) | public PartyView()
FILE: KHSave.SaveEditor.Kh3/Views/PhotosView.xaml.cs
class PhotosView (line 8) | public partial class PhotosView : UserControl
method PhotosView (line 10) | public PhotosView()
FILE: KHSave.SaveEditor.Kh3/Views/PlayerAbilityView.xaml.cs
class PlayerAbilityView (line 8) | public partial class PlayerAbilityView : UserControl
method PlayerAbilityView (line 10) | public PlayerAbilityView()
FILE: KHSave.SaveEditor.Kh3/Views/PlayerEquipmentView.xaml.cs
class PlayerEquipmentView (line 8) | public partial class PlayerEquipmentView : UserControl
method PlayerEquipmentView (line 10) | public PlayerEquipmentView()
FILE: KHSave.SaveEditor.Kh3/Views/PlayerStatusView.xaml.cs
class PlayerStatusView (line 8) | public partial class PlayerStatusView : UserControl
method PlayerStatusView (line 10) | public PlayerStatusView()
FILE: KHSave.SaveEditor.Kh3/Views/PlayerView.xaml.cs
class PlayerView (line 8) | public partial class PlayerView : UserControl
method PlayerView (line 10) | public PlayerView()
FILE: KHSave.SaveEditor.Kh3/Views/PlayersView.xaml.cs
class PlayersView (line 8) | public partial class PlayersView : UserControl
method PlayersView (line 10) | public PlayersView()
FILE: KHSave.SaveEditor.Kh3/Views/RecordMinigamesView.xaml.cs
class RecordMinigamesView (line 8) | public partial class RecordMinigamesView : UserControl
method RecordMinigamesView (line 10) | public RecordMinigamesView()
FILE: KHSave.SaveEditor.Kh3/Views/RecordsView.xaml.cs
class RecordsView (line 8) | public partial class RecordsView : UserControl
method RecordsView (line 10) | public RecordsView()
FILE: KHSave.SaveEditor.Kh3/Views/ShortcutsView.xaml.cs
class ShortcutsView (line 8) | public partial class ShortcutsView : UserControl
method ShortcutsView (line 10) | public ShortcutsView()
FILE: KHSave.SaveEditor.Kh3/Views/StoryView.xaml.cs
class StoryView (line 8) | public partial class StoryView : UserControl
method StoryView (line 10) | public StoryView()
FILE: KHSave.SaveEditor.Kh3/Views/SystemView.xaml.cs
class SystemView (line 8) | public partial class SystemView : UserControl
method SystemView (line 10) | public SystemView()
FILE: KHSave.SaveEditor.KhBbs/MainView.xaml.cs
class MainView (line 21) | public partial class MainView : UserControl
method MainView (line 23) | public MainView()
FILE: KHSave.SaveEditor.KhBbs/Models/CommandListModel.cs
class CommandListModel (line 10) | public class CommandListModel : BaseNotifyPropertyChanged
method CommandListModel (line 15) | public CommandListModel(int index, Command[] commands)
FILE: KHSave.SaveEditor.KhBbs/ViewModels/CharacterViewModel.cs
class CharacterViewModel (line 9) | public class CharacterViewModel
method CharacterViewModel (line 13) | public CharacterViewModel(Character character)
FILE: KHSave.SaveEditor.KhBbs/ViewModels/CommandListViewModel.cs
class CommandListViewModel (line 9) | public class CommandListViewModel : GenericListModel<CommandViewModel>
method CommandListViewModel (line 13) | public CommandListViewModel(SaveKhBbs.SaveFinalMix save) :
method CommandListViewModel (line 19) | public CommandListViewModel(IEnumerable<Command> list) :
method CommandListViewModel (line 25) | public CommandListViewModel(IEnumerable<CommandViewModel> list) :
FILE: KHSave.SaveEditor.KhBbs/ViewModels/CommandViewModel.cs
class CommandViewModel (line 11) | public class CommandViewModel : BaseNotifyPropertyChanged
method CommandViewModel (line 15) | public CommandViewModel(Command command)
FILE: KHSave.SaveEditor.KhBbs/ViewModels/DeckViewModel.cs
class DeckViewModel (line 7) | public class DeckViewModel : BaseNotifyPropertyChanged
method DeckViewModel (line 11) | public DeckViewModel(Deck deck, CommandListViewModel commandList)
method GetValue (line 43) | private short GetValue(ushort value)
FILE: KHSave.SaveEditor.KhBbs/ViewModels/DecksViewModel.cs
class DecksViewModel (line 7) | public class DecksViewModel : GenericListModel<DeckViewModel>
method DecksViewModel (line 9) | public DecksViewModel(Deck[] decks, CommandListViewModel commandList) :
FILE: KHSave.SaveEditor.KhBbs/ViewModels/KhBbsViewModel.cs
class KhBbsViewModel (line 9) | public class KhBbsViewModel : BaseNotifyPropertyChanged, IRefreshUi, IOp...
method RefreshUi (line 18) | public void RefreshUi()
method OpenStream (line 31) | public void OpenStream(Stream stream)
method WriteToStream (line 44) | public void WriteToStream(Stream stream) => SaveKhBbs.Write(stream, sa...
FILE: KHSave.SaveEditor.KhBbs/ViewModels/SystemViewModel.cs
class SystemViewModel (line 7) | public class SystemViewModel
method SystemViewModel (line 11) | public SystemViewModel(ISaveKhBbs save)
FILE: KHSave.SaveEditor.KhBbs/Views/CharacterView.xaml.cs
class CharacterView (line 21) | public partial class CharacterView : UserControl
method CharacterView (line 23) | public CharacterView()
FILE: KHSave.SaveEditor.KhBbs/Views/CommandListView.xaml.cs
class CommandListView (line 21) | public partial class CommandListView : UserControl
method CommandListView (line 23) | public CommandListView()
FILE: KHSave.SaveEditor.KhBbs/Views/CommandView.xaml.cs
class CommandView (line 21) | public partial class CommandView : UserControl
method CommandView (line 23) | public CommandView()
FILE: KHSave.SaveEditor.KhBbs/Views/DeckView.xaml.cs
class DeckView (line 21) | public partial class DeckView : UserControl
method DeckView (line 23) | public DeckView()
FILE: KHSave.SaveEditor.KhBbs/Views/DecksView.xaml.cs
class DecksView (line 21) | public partial class DecksView : UserControl
method DecksView (line 23) | public DecksView()
FILE: KHSave.SaveEditor.KhBbs/Views/SystemView.xaml.cs
class SystemView (line 21) | public partial class SystemView : UserControl
method SystemView (line 23) | public SystemView()
FILE: KHSave.SaveEditor.KhDDD/Interfaces/IResourceGetter.cs
type IResourceGetter (line 6) | public interface IResourceGetter
FILE: KHSave.SaveEditor.KhDDD/MainView.xaml.cs
class MainView (line 21) | public partial class MainView : UserControl
method MainView (line 23) | public MainView()
FILE: KHSave.SaveEditor.KhDDD/ViewModels/CharacterViewModel.cs
class CharacterViewModel (line 9) | public class CharacterViewModel : BaseNotifyPropertyChanged
method CharacterViewModel (line 11) | public CharacterViewModel(ISaveKhDDD save, IResourceGetter resourceGet...
FILE: KHSave.SaveEditor.KhDDD/ViewModels/CommandsViewModel.cs
class CommandsViewModel (line 14) | public class CommandsViewModel : GenericListModel<CommandEntryViewModel>
method CommandsViewModel (line 18) | public CommandsViewModel(CommandEntry[] commands, IResourceGetter reso...
class CommandEntryViewModel (line 36) | public class CommandEntryViewModel : BaseNotifyPropertyChanged, SearchEn...
method CommandEntryViewModel (line 41) | public CommandEntryViewModel(CommandEntry commandEntry, IResourceGette...
FILE: KHSave.SaveEditor.KhDDD/ViewModels/DeckViewModel.cs
class DeckViewModel (line 7) | public class DeckViewModel : BaseNotifyPropertyChanged
method DeckViewModel (line 11) | public DeckViewModel(IDeck deck)
FILE: KHSave.SaveEditor.KhDDD/ViewModels/DecksViewModel.cs
class DecksViewModel (line 7) | public class DecksViewModel : GenericListModel<DeckViewModel>
method DecksViewModel (line 9) | public DecksViewModel(IDeck[] decks) :
FILE: KHSave.SaveEditor.KhDDD/ViewModels/DreamEaterViewModel.cs
class DreamEaterViewModel (line 9) | public class DreamEaterViewModel : BaseNotifyPropertyChanged
method DreamEaterViewModel (line 13) | public DreamEaterViewModel(DreamEater dreamEater)
FILE: KHSave.SaveEditor.KhDDD/ViewModels/DreamEatersViewModel.cs
class DreamEatersViewModel (line 7) | public class DreamEatersViewModel : GenericListModel<DreamEaterViewModel>
method DreamEatersViewModel (line 9) | public DreamEatersViewModel(DreamEater[] dreamEaters) :
FILE: KHSave.SaveEditor.KhDDD/ViewModels/KhDDDViewModel.cs
class KhDDDViewModel (line 12) | public class KhDDDViewModel : BaseNotifyPropertyChanged,
method RefreshUi (line 26) | public void RefreshUi()
method OpenStream (line 44) | public void OpenStream(Stream stream)
method WriteToStream (line 52) | public void WriteToStream(Stream stream) => SaveKhDDD.Write(stream, sa...
FILE: KHSave.SaveEditor.KhDDD/ViewModels/SystemViewModel.cs
class SystemViewModel (line 8) | public class SystemViewModel
method SystemViewModel (line 12) | public SystemViewModel(ISaveKhDDD save)
FILE: KHSave.SaveEditor.KhDDD/Views/Character.xaml.cs
class Character (line 21) | public partial class Character : UserControl
method Character (line 23) | public Character()
FILE: KHSave.SaveEditor.KhDDD/Views/CommandsView.xaml.cs
class CommandsView (line 8) | public partial class CommandsView : UserControl
method CommandsView (line 10) | public CommandsView()
FILE: KHSave.SaveEditor.KhDDD/Views/Deck.xaml.cs
class Deck (line 21) | public partial class Deck : UserControl
method Deck (line 23) | public Deck()
FILE: KHSave.SaveEditor.KhDDD/Views/Decks.xaml.cs
class Decks (line 21) | public partial class Decks : UserControl
method Decks (line 23) | public Decks()
FILE: KHSave.SaveEditor.KhDDD/Views/DreamEater.xaml.cs
class DreamEater (line 21) | public partial class DreamEater : UserControl
method DreamEater (line 23) | public DreamEater()
FILE: KHSave.SaveEditor.KhDDD/Views/DreamEaters.xaml.cs
class DreamEaters (line 21) | public partial class DreamEaters : UserControl
method DreamEaters (line 23) | public DreamEaters()
FILE: KHSave.SaveEditor.KhDDD/Views/SystemView.xaml.cs
class SystemView (line 21) | public partial class SystemView : UserControl
method SystemView (line 23) | public SystemView()
FILE: KHSave.SaveEditor.KhRecom/Constants.cs
class Constants (line 3) | public class Constants
FILE: KHSave.SaveEditor.KhRecom/Interfaces/ICardCountService.cs
type ICardCountService (line 6) | public interface ICardCountService
method GetCardCount (line 8) | byte GetCardCount(CardType card, CardIndex index, bool isSpecial);
method SetCardCount (line 10) | void SetCardCount(CardType card, CardIndex index, bool isSpecial, byte...
FILE: KHSave.SaveEditor.KhRecom/MainView.xaml.cs
class MainView (line 8) | public partial class MainView : UserControl
method MainView (line 10) | public MainView()
FILE: KHSave.SaveEditor.KhRecom/Models/CardIndex.cs
type CardIndex (line 5) | public struct CardIndex : IEquatable<CardIndex>, IEquatable<int>
method CardIndex (line 10) | public CardIndex(int index)
method Equals (line 20) | public bool Equals(CardIndex otherCardIndex) => Index == otherCardInde...
method Equals (line 21) | public bool Equals(int index) => Index == index;
FILE: KHSave.SaveEditor.KhRecom/ViewModels/CardInventoryEntryViewModel.cs
class CardInventoryEntryViewModel (line 11) | public class CardInventoryEntryViewModel : EnumIconTypeModel<CardType>
method CardInventoryEntryViewModel (line 16) | public CardInventoryEntryViewModel(Card card, ICardCountService cardCo...
method GetTotalFromIndexed (line 49) | private string GetTotalFromIndexed() =>
method GetCount (line 53) | private byte GetCount(CardIndex index)
method SetCount (line 61) | private void SetCount(CardIndex index, byte value)
FILE: KHSave.SaveEditor.KhRecom/ViewModels/CardInventoryViewModel.cs
class CardInventoryViewModel (line 14) | public class CardInventoryViewModel : GenericListModel<CardInventoryEntr...
method CardInventoryViewModel (line 18) | public CardInventoryViewModel(DataRecom save, ICardCountService cardCo...
method CardInventoryViewModel (line 24) | public CardInventoryViewModel(IEnumerable<CardInventoryEntryViewModel>...
method CardInventoryViewModel (line 30) | public CardInventoryViewModel(
method GetEntries (line 56) | private static IEnumerable<CardInventoryEntryViewModel> GetEntries(Dat...
FILE: KHSave.SaveEditor.KhRecom/ViewModels/KhRecomViewModel.cs
class KhRecomViewModel (line 13) | public class KhRecomViewModel : BaseNotifyPropertyChanged, IRefreshUi, I...
method KhRecomViewModel (line 24) | public KhRecomViewModel()
method RefreshUi (line 28) | public void RefreshUi()
method OpenStream (line 41) | public void OpenStream(Stream stream)
method WriteToStream (line 47) | public void WriteToStream(Stream stream) => _save.Write(stream);
method GetCardCount (line 49) | public byte GetCardCount(CardType card, CardIndex index, bool isPremiu...
method SetCardCount (line 52) | public void SetCardCount(CardType card, CardIndex index, bool isPremiu...
method OnCard (line 55) | private T OnCard<T>(CardType card, bool isPremium, Func<int, T> action)
FILE: KHSave.SaveEditor.KhRecom/ViewModels/ProgressViewModel.cs
class ProgressViewModel (line 6) | public class ProgressViewModel
method ProgressViewModel (line 15) | public ProgressViewModel(DataRecom save)
FILE: KHSave.SaveEditor.KhRecom/ViewModels/SettingsViewModel.cs
class SettingsViewModel (line 7) | public class SettingsViewModel
method SettingsViewModel (line 11) | public SettingsViewModel(DataRecom save)
FILE: KHSave.SaveEditor.KhRecom/ViewModels/SystemViewModel.cs
class SystemViewModel (line 8) | public class SystemViewModel
method SystemViewModel (line 14) | public SystemViewModel(DataRecom save)
FILE: KHSave.SaveEditor.KhRecom/Views/CardInventoryEntryView.xaml.cs
class CardInventoryEntryView (line 21) | public partial class CardInventoryEntryView : UserControl
method CardInventoryEntryView (line 23) | public CardInventoryEntryView()
FILE: KHSave.SaveEditor.KhRecom/Views/CardInventoryView.xaml.cs
class CardInventoryView (line 8) | public partial class CardInventoryView : UserControl
method CardInventoryView (line 10) | public CardInventoryView()
FILE: KHSave.SaveEditor.KhRecom/Views/ProgressView.xaml.cs
class ProgressView (line 8) | public partial class ProgressView : UserControl
method ProgressView (line 10) | public ProgressView()
FILE: KHSave.SaveEditor.KhRecom/Views/SettingsView.xaml.cs
class SettingsView (line 21) | public partial class SettingsView : UserControl
method SettingsView (line 23) | public SettingsView()
FILE: KHSave.SaveEditor.KhRecom/Views/SystemView.xaml.cs
class SystemView (line 8) | public partial class SystemView : UserControl
method SystemView (line 10) | public SystemView()
FILE: KHSave.SaveEditor.Persona3/Interfaces/IPersonaList.cs
type IPersonaList (line 7) | public interface IPersonaList
method GetPersona (line 10) | PersonaModel GetPersona(Demons id);
FILE: KHSave.SaveEditor.Persona3/Interfaces/ISkillList.cs
type ISkillList (line 6) | public interface ISkillList
FILE: KHSave.SaveEditor.Persona3/Models/PersonaModel.cs
class PersonaModel (line 7) | public class PersonaModel
method PersonaModel (line 14) | public PersonaModel(Demons demon)
FILE: KHSave.SaveEditor.Persona3/Models/SkillModel.cs
class SkillModel (line 9) | public class SkillModel
method SkillModel (line 11) | public SkillModel(Skill value)
FILE: KHSave.SaveEditor.Persona3/ViewModels/CompendiumViewModel.cs
class CompendiumViewModel (line 12) | public class CompendiumViewModel : GenericListModel<PersonaViewModel>
method CompendiumViewModel (line 23) | public CompendiumViewModel(
method CompendiumViewModel (line 54) | private CompendiumViewModel(IEnumerable<PersonaViewModel> list) :
method OnSelectedItem (line 63) | protected override void OnSelectedItem(PersonaViewModel item)
method OnNewItem (line 70) | protected override PersonaViewModel OnNewItem() =>
FILE: KHSave.SaveEditor.Persona3/ViewModels/Persona3MainViewModel.cs
class Persona3MainViewModel (line 16) | public class Persona3MainViewModel : BaseNotifyPropertyChanged,
method Persona3MainViewModel (line 25) | static Persona3MainViewModel()
method RefreshUi (line 56) | public void RefreshUi()
method OpenStream (line 65) | public void OpenStream(Stream stream)
method WriteToStream (line 71) | public void WriteToStream(Stream stream) => Save.Write(stream);
method GetPersona (line 73) | public PersonaModel GetPersona(Demons id)
FILE: KHSave.SaveEditor.Persona3/ViewModels/PersonaViewModel.cs
class PersonaViewModel (line 13) | public class PersonaViewModel : BaseNotifyPropertyChanged
method ResetPersonaToDefault (line 75) | internal void ResetPersonaToDefault()
method PersonaViewModel (line 230) | public PersonaViewModel(int compendiumIndex, Persona persona, IPersona...
method ToString (line 238) | public override string ToString()
FILE: KHSave.SaveEditor.Persona3/Views/CompendiumView.xaml.cs
class CompendiumView (line 21) | public partial class CompendiumView : UserControl
method CompendiumView (line 23) | public CompendiumView()
FILE: KHSave.SaveEditor.Persona3/Views/Persona3MainView.xaml.cs
class Persona3MainView (line 21) | public partial class Persona3MainView : UserControl
method Persona3MainView (line 23) | public Persona3MainView()
FILE: KHSave.SaveEditor.Persona3/Views/PersonaView.xaml.cs
class PersonaView (line 21) | public partial class PersonaView : UserControl
method PersonaView (line 23) | public PersonaView()
FILE: KHSave.SaveEditor.Persona5/Interfaces/IConsumableList.cs
type IConsumableList (line 6) | public interface IConsumableList
FILE: KHSave.SaveEditor.Persona5/Interfaces/IEquipmentList.cs
type IEquipmentList (line 8) | public interface IEquipmentList
FILE: KHSave.SaveEditor.Persona5/Interfaces/IPersonaList.cs
type IPersonaList (line 6) | public interface IPersonaList
FILE: KHSave.SaveEditor.Persona5/Interfaces/ISkillList.cs
type ISkillList (line 6) | public interface ISkillList
FILE: KHSave.SaveEditor.Persona5/Models/EquipmentModel.cs
class EquipmentModel (line 7) | public class EquipmentModel
method EquipmentModel (line 13) | public EquipmentModel(
FILE: KHSave.SaveEditor.Persona5/ViewModels/CharacterEntryViewModel.cs
class CharacterEntryViewModel (line 16) | public class CharacterEntryViewModel : GenericListModel<PersonaViewModel>
method CharacterEntryViewModel (line 23) | public CharacterEntryViewModel(
method OnSelectedItem (line 183) | protected override void OnSelectedItem(PersonaViewModel item)
FILE: KHSave.SaveEditor.Persona5/ViewModels/CharactersViewModel.cs
class CharactersViewModel (line 10) | public class CharactersViewModel : GenericListModel<CharacterEntryViewMo...
method CharactersViewModel (line 14) | public CharactersViewModel(
method CharactersViewModel (line 25) | private CharactersViewModel(IEnumerable<CharacterEntryViewModel> list) :
method OnSelectedItem (line 32) | protected override void OnSelectedItem(CharacterEntryViewModel item)
method OnNewItem (line 39) | protected override CharacterEntryViewModel OnNewItem() =>
FILE: KHSave.SaveEditor.Persona5/ViewModels/CompendiumViewModel.cs
class CompendiumViewModel (line 11) | public class CompendiumViewModel : GenericListModel<PersonaViewModel>
method CompendiumViewModel (line 22) | public CompendiumViewModel(
method CompendiumViewModel (line 54) | private CompendiumViewModel(IEnumerable<PersonaViewModel> list) :
method OnSelectedItem (line 63) | protected override void OnSelectedItem(PersonaViewModel item)
method OnNewItem (line 70) | protected override PersonaViewModel OnNewItem() =>
FILE: KHSave.SaveEditor.Persona5/ViewModels/InventoryViewModel.cs
class InventoryEntry (line 11) | public class InventoryEntry : BaseNotifyPropertyChanged, SearchEngine.IN...
method InventoryEntry (line 16) | public InventoryEntry(IConsumableList consumables, byte[] elementCount...
class InventoryViewModel (line 33) | public class InventoryViewModel : GenericListModel<InventoryEntry>
method InventoryViewModel (line 38) | public InventoryViewModel(ISavePersona5 save, IConsumableList consumab...
FILE: KHSave.SaveEditor.Persona5/ViewModels/Persona5MainViewModel.cs
class Persona5MainViewModel (line 15) | public class Persona5MainViewModel : BaseNotifyPropertyChanged,
method RefreshUi (line 95) | public void RefreshUi()
method OpenStream (line 108) | public void OpenStream(Stream stream)
method GetPersona (line 153) | private List<PersonaEntryViewModel> GetPersona(List<Presets.Persona> p...
method ProcessItems (line 157) | private void ProcessItems(Presets.Items items)
method GetFlagIndex (line 191) | private int GetFlagIndex(int mask)
method WriteToStream (line 199) | public void WriteToStream(Stream stream) =>
FILE: KHSave.SaveEditor.Persona5/ViewModels/PersonaEntryViewModel.cs
class PersonaEntryViewModel (line 5) | public class PersonaEntryViewModel
method PersonaEntryViewModel (line 15) | public PersonaEntryViewModel(Presets.Persona persona)
method ToString (line 23) | public override string ToString()
FILE: KHSave.SaveEditor.Persona5/ViewModels/PersonaViewModel.cs
class PersonaViewModel (line 15) | public class PersonaViewModel : BaseNotifyPropertyChanged
method PersonaViewModel (line 24) | public PersonaViewModel(int compendiumIndex, Persona persona, IPersona...
method ResetPersonaToDefault (line 42) | public void ResetPersonaToDefault()
FILE: KHSave.SaveEditor.Persona5/ViewModels/RoomViewModel.cs
class RoomViewModel (line 6) | public class RoomViewModel : BaseNotifyPropertyChanged
method RoomViewModel (line 15) | public RoomViewModel(Presets.Field field)
FILE: KHSave.SaveEditor.Persona5/ViewModels/SkillViewModel.cs
class SkillViewModel (line 6) | public class SkillViewModel
FILE: KHSave.SaveEditor.Persona5/ViewModels/SystemViewModel.cs
class SystemViewModel (line 8) | public class SystemViewModel
method SystemViewModel (line 41) | public SystemViewModel(ISavePersona5 save)
method IsMapPresent (line 50) | private bool IsMapPresent(Presets.Field field, bool isRoyal) =>
FILE: KHSave.SaveEditor.Persona5/Views/CharacterView.xaml.cs
class CharacterView (line 8) | public partial class CharacterView : UserControl
method CharacterView (line 10) | public CharacterView()
FILE: KHSave.SaveEditor.Persona5/Views/CharactersView.xaml.cs
class CharactersView (line 8) | public partial class CharactersView : UserControl
method CharactersView (line 10) | public CharactersView()
FILE: KHSave.SaveEditor.Persona5/Views/CompendiumView.xaml.cs
class CompendiumView (line 21) | public partial class CompendiumView : UserControl
method CompendiumView (line 23) | public CompendiumView()
FILE: KHSave.SaveEditor.Persona5/Views/InventoryView.xaml.cs
class InventoryView (line 8) | public partial class InventoryView : UserControl
method InventoryView (line 10) | public InventoryView()
FILE: KHSave.SaveEditor.Persona5/Views/Persona5MainView.xaml.cs
class Persona5MainView (line 8) | public partial class Persona5MainView : UserControl
method Persona5MainView (line 10) | public Persona5MainView()
FILE: KHSave.SaveEditor.Persona5/Views/PersonaView.xaml.cs
class PersonaView (line 8) | public partial class PersonaView : UserControl
method PersonaView (line 10) | public PersonaView()
FILE: KHSave.SaveEditor.Persona5/Views/SystemView.xaml.cs
class SystemView (line 21) | public partial class SystemView : UserControl
method SystemView (line 23) | public SystemView()
FILE: KHSave.SaveEditor/App.xaml.cs
class App (line 18) | public partial class App : Application
class ApplicationStartup (line 20) | private class ApplicationStartup : IApplicationStartup
method ApplicationStartup (line 22) | public ApplicationStartup(string[] args)
method OnStartup (line 40) | protected override void OnStartup(StartupEventArgs e)
method Initialize (line 53) | private void Initialize(StartupEventArgs e)
method CaptureException (line 78) | private static void CaptureException(Exception ex)
FILE: KHSave.SaveEditor/Interfaces/IAlertMessage.cs
type IAlertMessage (line 6) | public interface IAlertMessage
method Info (line 8) | void Info(string message, string title = null);
method Warning (line 9) | void Warning(string message, string title = null);
method Error (line 10) | void Error(string message, string title = null);
method Error (line 11) | void Error(Exception exception);
method Error (line 12) | void Error(VisualException exception);
method InfoQuestion (line 13) | bool? InfoQuestion(string message, string title = null);
method WarningQuestion (line 14) | bool? WarningQuestion(string message, string title = null);
method ErrorQuestion (line 15) | bool? ErrorQuestion(string message, string title = null);
FILE: KHSave.SaveEditor/Interfaces/IApplicationStartup.cs
type IApplicationStartup (line 3) | public interface IApplicationStartup
FILE: KHSave.SaveEditor/Interfaces/IFileDialogManager.cs
type IFileDialogManager (line 6) | public interface IFileDialogManager
method InjectFileName (line 11) | void InjectFileName(string fileName, Action<Stream> onSuccess);
method Open (line 12) | void Open(Action<Stream> onSuccess);
method Save (line 13) | void Save(Action<Stream> onSuccess);
method SaveAs (line 14) | void SaveAs(Action<Stream> onSuccess);
FILE: KHSave.SaveEditor/Interfaces/IReporter.cs
type IReporter (line 5) | public interface IReporter
method SendGameName (line 7) | void SendGameName(string name);
method SendCrashReport (line 8) | void SendCrashReport(Exception ex);
FILE: KHSave.SaveEditor/Interfaces/IUpdater.cs
type IUpdater (line 5) | public interface IUpdater
method AutomaticallyCheckLastVersionAsync (line 9) | Task<bool> AutomaticallyCheckLastVersionAsync();
method ForceCheckLastVersionAsync (line 10) | Task<bool> ForceCheckLastVersionAsync();
FILE: KHSave.SaveEditor/Interfaces/IWindowManager.cs
type IWindowManager (line 6) | public interface IWindowManager
method Push (line 12) | bool? Push<TWindow>(Action<TWindow> onSetup = null, Func<TWindow, bool...
method Push (line 13) | bool? Push(Window window);
method Pull (line 15) | void Pull();
FILE: KHSave.SaveEditor/Models/PatreonInfo.cs
class PatreonInfo (line 5) | public class PatreonInfo
FILE: KHSave.SaveEditor/Models/PatronModel.cs
class PatronModel (line 3) | public class PatronModel
FILE: KHSave.SaveEditor/Models/ServiceMessage.cs
class ServiceMessage (line 3) | public class ServiceMessage
FILE: KHSave.SaveEditor/Models/SponsorshipInfo.cs
class SponsorshipInfo (line 3) | public class SponsorshipInfo
FILE: KHSave.SaveEditor/Properties/Resources.Designer.cs
class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...
FILE: KHSave.SaveEditor/Services/AlertMessage.cs
class AlertMessage (line 8) | public class AlertMessage : IAlertMessage
method AlertMessage (line 12) | public AlertMessage(IWindowManager windowManager)
method Info (line 17) | public void Info(string message, string title) =>
method Warning (line 20) | public void Warning(string message, string title) =>
method Error (line 23) | public void Error(string message, string title) =>
method Error (line 26) | public void Error(Exception exception) => Error(exception.Message, "Er...
method Error (line 28) | public void Error(VisualException exception) => Error(exception.Messag...
method InfoQuestion (line 30) | public bool? InfoQuestion(string message, string title) =>
method WarningQuestion (line 33) | public bool? WarningQuestion(string message, string title) =>
method ErrorQuestion (line 36) | public bool? ErrorQuestion(string message, string title) =>
method Invoke (line 39) | private bool? Invoke(string message, string title, MessageBoxButton bu...
FILE: KHSave.SaveEditor/Services/ContentFactory.cs
type ContentType (line 22) | public enum ContentType
class ContentResponse (line 38) | public class ContentResponse
class ContentFactory (line 47) | public class ContentFactory
method ContentFactory (line 51) | public ContentFactory(IUnityContainer container)
method Factory (line 56) | public ContentResponse Factory(ContentType saveType) => saveType switch
method LoadIconPack (line 72) | public void LoadIconPack(ContentType saveType)
method FactorySimpleView (line 106) | private ContentResponse FactorySimpleView<TControl>()
method FactoryView (line 112) | private ContentResponse FactoryView<TControl, TContext>()
method FactoryEditorView (line 125) | private ContentResponse FactoryEditorView<TControl, TContext>()
FILE: KHSave.SaveEditor/Services/DesktopAppIdentity.cs
class DesktopAppIdentity (line 10) | public class DesktopAppIdentity : IAppIdentity
method DesktopAppIdentity (line 25) | public DesktopAppIdentity()
FILE: KHSave.SaveEditor/Services/FileDialogManager.cs
class FileDialogManager (line 9) | public class FileDialogManager : IFileDialogManager
method FileDialogManager (line 33) | public FileDialogManager(IWindowManager windowManager)
method InjectFileName (line 38) | public void InjectFileName(string fileName, Action<Stream> onSuccess)
method Open (line 54) | public void Open(Action<Stream> onSuccess) =>
method Save (line 57) | public void Save(Action<Stream> onSuccess)
method SaveAs (line 72) | public void SaveAs(Action<Stream> onSuccess)
FILE: KHSave.SaveEditor/Services/IAppIdentity.cs
type IAppIdentity (line 3) | public interface IAppIdentity
FILE: KHSave.SaveEditor/Services/PatreonService.cs
class PatreonService (line 11) | public class PatreonService
class PatreonResponse (line 13) | private class PatreonResponse
class SponsorshipInfo (line 28) | public class SponsorshipInfo
class HeaderInfo (line 43) | public class HeaderInfo
class HeaderMessage (line 49) | public class HeaderMessage
class PatronDto (line 70) | private class PatronDto
method PatreonService (line 96) | public PatreonService(IAppIdentity appIdentity)
method GetPatreonInfo (line 101) | public async Task<PatreonInfo> GetPatreonInfo()
method FetchPatreonInfo (line 137) | private async Task<PatreonResponse> FetchPatreonInfo()
FILE: KHSave.SaveEditor/Services/Pcsx2MemoryService.cs
class Pcsx2MemoryService (line 10) | public static class Pcsx2MemoryService
class GameEntry (line 24) | private class GameEntry
method GameEntry (line 30) | public GameEntry(string titleId, long offset, int length)
method GetPcsx2ApplicationName (line 73) | public static async Task<string> GetPcsx2ApplicationName(Process proce...
method CreateStreamFromPcsx2Process (line 130) | public static async Task<ProcessStream> CreateStreamFromPcsx2Process(P...
FILE: KHSave.SaveEditor/Services/ReporterService.cs
class ReporterService (line 12) | public class ReporterService : IReporter
class GlobalReporterService (line 14) | internal static class GlobalReporterService
method SendGameName (line 20) | public static void SendGameName(string name)
method SendCrashReport (line 28) | public static void SendCrashReport(Exception ex)
method DeleteCookies (line 36) | public static void DeleteCookies()
method GetCookie (line 46) | private static string GetCookie()
method GenerateCookie (line 58) | private static string GenerateCookie() =>
method Send (line 61) | private static Task Send(string endpoint, object obj)
method SendGameName (line 92) | public void SendGameName(string name) => GlobalReporterService.SendGam...
method SendCrashReport (line 93) | public void SendCrashReport(Exception ex) => GlobalReporterService.Sen...
method DeleteCookies (line 94) | public void DeleteCookies() => GlobalReporterService.DeleteCookies();
FILE: KHSave.SaveEditor/Services/TransferService.cs
class TransferService (line 10) | public static class TransferService
type Result (line 12) | public enum Result
method Transfer (line 20) | public static Result Transfer(object dstSave, Stream srcSaveStream)
method Transfer (line 29) | public static Result Transfer<T>(
FILE: KHSave.SaveEditor/Services/UpdaterService.cs
class UpdaterService (line 11) | public class UpdaterService : IUpdater
method UpdaterService (line 37) | public UpdaterService(IWindowManager windowManager)
method AutomaticallyCheckLastVersionAsync (line 43) | public Task<bool> AutomaticallyCheckLastVersionAsync()
method ForceCheckLastVersionAsync (line 51) | public async Task<bool> ForceCheckLastVersionAsync()
method UpdateLastTimeForCheckingNewVersion (line 73) | private void UpdateLastTimeForCheckingNewVersion() =>
FILE: KHSave.SaveEditor/Services/WindowManager.cs
class WindowManager (line 9) | public class WindowManager : IWindowManager
method WindowManager (line 30) | public WindowManager(IUnityContainer container)
method Push (line 35) | public bool? Push<TWindow>(Action<TWindow> onSetup, Func<TWindow, bool...
method Push (line 44) | public bool? Push(Window window)
method Pull (line 50) | public void Pull()
FILE: KHSave.SaveEditor/VersionCheck/DesktopCheckCurrentVersion.cs
class DesktopCheckCurrentVersion (line 6) | public class DesktopCheckCurrentVersion : ICheckCurrentVersion
method DesktopCheckCurrentVersion (line 10) | public DesktopCheckCurrentVersion()
method GetCurrentVersion (line 15) | public string GetCurrentVersion() => _appIdentity.Version;
FILE: KHSave.SaveEditor/ViewModels/HomeViewModel.cs
class HomeViewModel (line 5) | public class HomeViewModel : BaseNotifyPropertyChanged
method HomeViewModel (line 71) | public HomeViewModel()
FILE: KHSave.SaveEditor/ViewModels/MainWindowViewModel.cs
class MainWindowViewModel (line 52) | public class MainWindowViewModel : BaseNotifyPropertyChanged
method MainWindowViewModel (line 157) | public MainWindowViewModel(
method IsTransferSupported (line 273) | private bool IsTransferSupported()
method Buffered (line 284) | private void Buffered(Stream stream, Action<Stream> call) => Buffered(...
method Buffered (line 290) | private T Buffered<T>(Stream stream, Func<Stream, T> call)
method Open (line 307) | public void Open(string fileName) => CatchException(() =>
method OpenPcsx2 (line 312) | public void OpenPcsx2(Func<Stream, bool> openStream) => CatchException...
method Open (line 323) | public bool Open(Stream stream) => CatchException(() =>
method Save (line 344) | private void Save(Stream stream)
method TryOpen (line 350) | public bool TryOpen(Stream stream) =>
method Open (line 363) | private bool Open(IArchiveFactory archiveFactory, Stream stream)
method Open (line 370) | private bool Open(IArchive archive)
method Open (line 384) | private bool Open(IArchive archive, IArchiveEntry archiveEntry)
method TryOpenArchive (line 403) | public bool TryOpenArchive(Stream stream)
method TryOpenKh1 (line 412) | public bool TryOpenKh1(Stream stream) => TryOpen(SaveKh1.IsValid, stre...
method TryOpenKh2 (line 413) | public bool TryOpenKh2(Stream stream) => TryOpen(SaveKh2.IsValid, stre...
method TryOpenKhBbs (line 414) | public bool TryOpenKhBbs(Stream stream) => TryOpen(SaveKhBbs.IsValid, ...
method TryOpenKhDDD (line 415) | public bool TryOpenKhDDD(Stream stream) => TryOpen(SaveKhDDD.IsValid, ...
method TryOpenKhRecom (line 416) | public bool TryOpenKhRecom(Stream stream) => TryOpen(SaveKhRecom.IsVal...
method TryOpenKh02 (line 417) | public bool TryOpenKh02(Stream stream) => TryOpen(SaveKh02.IsValid, st...
method TryOpenKh3 (line 418) | public bool TryOpenKh3(Stream stream) => TryOpen(SaveKh3.IsValid, stre...
method TryOpenFF7Remake (line 419) | public bool TryOpenFF7Remake(Stream stream) => TryOpen(SaveFf7Remake.I...
method TryOpenPersona3 (line 420) | public bool TryOpenPersona3(Stream stream) => TryOpen(SavePersona3.IsV...
method TryOpenPersona5 (line 421) | public bool TryOpenPersona5(Stream stream) => TryOpen(SavePersona5.IsV...
method TryOpen (line 423) | public bool TryOpen(Func<Stream, bool> prediate, Stream stream, Conten...
method OpenProcessStream (line 433) | private void OpenProcessStream(ProcessStream processStream, Func<Strea...
method CloseProcessStream (line 445) | private void CloseProcessStream()
method CatchException (line 458) | public static void CatchException(Action action)
method CatchException (line 470) | public static T CatchException<T>(Func<T> action)
method CreateUnsupportedSaveExceptiom (line 483) | private static Exception CreateUnsupportedSaveExceptiom() =>
method InvokeRefreshUi (line 486) | public void InvokeRefreshUi() => RefreshUi?.RefreshUi();
method ChangeContent (line 488) | private void ChangeContent(ContentType contentType, Stream stream = null)
method IsIssueSectionClosed (line 517) | private static bool IsIssueSectionClosed(HttpResponseMessage response) =>
FILE: KHSave.SaveEditor/ViewModels/PatronViewModel.cs
class PatronViewModel (line 10) | public class PatronViewModel
method PatronViewModel (line 12) | public PatronViewModel(PatronModel patron)
method GetColor (line 56) | private static SolidColorBrush GetColor(string color)
FILE: KHSave.SaveEditor/Views/AttachToPcsx2GameWindow.xaml.cs
class AttachToPcsx2GameWindow (line 15) | public partial class AttachToPcsx2GameWindow : Window
method AttachToPcsx2GameWindow (line 19) | public AttachToPcsx2GameWindow()
method WaitForGame (line 24) | public ProcessStream WaitForGame(Process process)
FILE: KHSave.SaveEditor/Views/AttachToProcessWindow.xaml.cs
class AttachToProcessWindow (line 11) | public partial class AttachToProcessWindow : Window
method AttachToProcessWindow (line 15) | public AttachToProcessWindow(string processName)
method WaitForProcess (line 26) | public Process WaitForProcess()
method ProcessSearchAsync (line 58) | private async Task ProcessSearchAsync(CancellationToken token)
method GetFirstProcessOrDefault (line 74) | private static Process GetFirstProcessOrDefault(string processName)
FILE: KHSave.SaveEditor/Views/HomeView.xaml.cs
class HomeView (line 16) | public partial class HomeView : UserControl
method HomeView (line 18) | public HomeView()
method Hyperlink_RequestNavigate (line 23) | private void Hyperlink_RequestNavigate(object sender, System.Windows.N...
method OnInitialized (line 33) | protected override void OnInitialized(EventArgs e)
method FetchAndPopulateSponsors (line 47) | private Func<Task> FetchAndPopulateSponsors()
method SetServerResponse (line 70) | private void SetServerResponse(Models.PatreonInfo patreonInfo)
method SetFundLink (line 79) | private void SetFundLink(HomeViewModel vm, string fundUrl) =>
method SetSponsorList (line 82) | private void SetSponsorList(HomeViewModel vm, IEnumerable<Models.Patro...
method SetSponsorshipInfo (line 102) | private void SetSponsorshipInfo(HomeViewModel vm, Models.SponsorshipIn...
method SetMessageList (line 114) | private void SetMessageList(HomeViewModel vm, IEnumerable<Models.Servi...
method IsDownloadNewVersion (line 143) | private static bool IsDownloadNewVersion(Models.ServiceMessage message)
FILE: KHSave.SaveEditor/Views/MainWindow.xaml.cs
class MainWindow (line 15) | public partial class MainWindow : Window
method MainWindow (line 20) | public MainWindow(
method Window_Loaded (line 44) | private void Window_Loaded(object sender, EventArgs e)
method Window_Drop (line 49) | private void Window_Drop(object sender, DragEventArgs e)
FILE: KHSave.SaveEditor/Views/PatronView.xaml.cs
class PatronView (line 16) | public partial class PatronView : UserControl
method PatronView (line 21) | public PatronView() :
method PatronView (line 25) | public PatronView(double remainHiddenSeconds, bool glow)
method UserControl_Loaded (line 33) | private void UserControl_Loaded(object sender, RoutedEventArgs e)
method Hyperlink_RequestNavigate (line 68) | private void Hyperlink_RequestNavigate(object sender, System.Windows.N...
FILE: KHSave.SaveEditor/Views/ServiceMessageView.xaml.cs
class ServiceMessageView (line 10) | public partial class ServiceMessageView : UserControl
method ServiceMessageView (line 12) | public ServiceMessageView()
method Hyperlink_RequestNavigate (line 29) | private void Hyperlink_RequestNavigate(object sender, System.Windows.N...
FILE: KHSave.SaveEditor/Views/UpdateWindow.xaml.cs
class UpdateWindow (line 11) | public partial class UpdateWindow : Window
method UpdateWindow (line 15) | public UpdateWindow(ReleaseVersion lastVersion)
method Hyperlink_RequestNavigate (line 39) | private void Hyperlink_RequestNavigate(object sender, System.Windows.N...
FILE: KHSave.Tests/Ff7RemakeTests.cs
class Ff7RemakeTests (line 8) | public class Ff7RemakeTests
method TestIsValid (line 12) | [Fact]
method ReadSaveTest (line 19) | [Fact]
method TestWriteBackTheSameExactFile (line 24) | [Theory]
method AssertSaveGame (line 38) | private static void AssertSaveGame(SaveFf7Remake save)
FILE: KHSave.Tests/Helpers.cs
class Helpers (line 7) | public static class Helpers
method Using (line 9) | public static void Using<T>(this T disposable, Action<T> action)
method Using (line 16) | public static TResult Using<T, TResult>(this T disposable, Func<T, TRe...
method Dump (line 23) | public static void Dump(this Stream stream, string path) =>
method AssertStream (line 30) | public static void AssertStream(Stream expectedStream, Func<Stream, St...
method ReadBytes (line 46) | public static byte[] ReadBytes(Stream stream)
method UseAsset (line 56) | public static void UseAsset(string assetName, Action<Stream> action) =>
method Dump (line 59) | public static void Dump(this byte[] data, string path) =>
method FileOpenRead (line 62) | public static void FileOpenRead(string path, Action<Stream> action)
FILE: KHSave.Tests/Kh1Tests.cs
class Kh1Tests (line 8) | public class Kh1Tests
method Kh1Tests (line 13) | public Kh1Tests()
method TestIsValid (line 21) | [Theory]
method TestRead (line 34) | [Fact]
method TestWriteBackTheSameExactFile (line 50) | [Fact]
FILE: KHSave.Tests/Kh2Tests.cs
class Kh2Tests (line 9) | public class Kh2Tests
method Kh2Tests (line 14) | public Kh2Tests()
method TestIsValid (line 22) | [Theory]
method TestVersion (line 36) | [Theory]
method TestChecksum (line 54) | [Fact]
method TestRead (line 64) | [Fact]
method TestWriteBackTheSameExactFile (line 100) | [Fact]
FILE: KHSave.Tests/Kh3Test.cs
class Kh3Test (line 27) | public class Kh3Test
method TestIsValid (line 32) | [Theory]
method ReadSaveTest (line 43) | [Theory]
method TestWriteWithoutChanges (line 50) | [Theory]
method TestWriteWithChanges (line 61) | [Theory]
method IgnoreDlcFieldsFor100 (line 90) | [Fact]
method ReadDlcFieldsFor109 (line 101) | [Fact]
method TestChecksum (line 110) | [Fact]
method AssertSaveGame (line 116) | private static void AssertSaveGame(ISaveKh3 save)
FILE: KHSave.Tests/KhBbsTests.cs
class KhBbsTests (line 9) | public class KhBbsTests
class FmTests (line 11) | public class FmTests
method FmTests (line 16) | public FmTests()
method TestRead (line 22) | [Fact]
method TestChecksum (line 50) | [Fact]
method TestWriteBackTheSameExactFile (line 56) | [Fact]
class EuTests (line 69) | public class EuTests
method EuTests (line 74) | public EuTests()
method TestChecksum (line 80) | [Fact]
method TestRead (line 86) | [Fact]
method TestWriteBackTheSameExactFile (line 92) | [Fact]
FILE: KHSave.Tests/KhDDDTests.cs
class KhDDDTests (line 8) | public class KhDDDTests
method KhDDDTests (line 13) | public KhDDDTests()
method TestIsValid (line 21) | [Theory]
method TestRead (line 33) | [Fact]
method TestWriteBackTheSameExactFile (line 66) | [Fact]
FILE: KHSave.Tests/PcArchiveTests.cs
class PcArchiveTests (line 7) | public class PcArchiveTests
method ReadKh2Archive (line 9) | [Fact]
method WriteBackKh2Archive (line 23) | [Fact]
FILE: KHSave.Tests/Persona3Tests.cs
class Persona3Tests (line 8) | public class Persona3Tests
method IsValid (line 10) | [Theory]
method WriteBackTheSameExactFile (line 16) | [Theory]
method ReadPersona3Vanilla (line 30) | [Fact]
method ReadPersona3Portable (line 71) | [Fact]
FILE: KHSave.Tests/Persona5Tests.cs
class Persona5Tests (line 8) | public class Persona5Tests
method TestIsValid (line 10) | [Theory]
method ReadPersona5FromPs3 (line 27) | [Fact]
method ReadPersona5FromPs4 (line 59) | [Fact]
method ReadPersona5Royal (line 88) | [Fact]
method WriteBackTheSameExactFile (line 112) | [Theory]
FILE: KHSave.Tests/Ps4SaveArchiveTests.cs
class Ps4SaveArchiveTests (line 10) | public class Ps4SaveArchiveTests
method ReadKh1Archive (line 16) | [Fact]
method ReadKh2Archive (line 45) | [Fact]
method WriteBackKh1Archive (line 74) | [Fact]
method CreateKh1Archive (line 82) | [Fact]
method CreateKh2Archive (line 112) | [Fact]
method OpenKh1File (line 122) | private Stream OpenKh1File()
method OpenKh2File (line 161) | private Stream OpenKh2File()
method WriteString (line 200) | private void WriteString(Stream stream, string text)
FILE: KHSave.Tests/RecomTests.cs
class RecomTests (line 9) | public class RecomTests
method IsValidTest (line 11) | [Fact]
method IsNotValidIfMagicCodeIsNotRecognizedTest (line 20) | [Fact]
method IsNotValidIfLengthIsNotEnoughTest (line 29) | [Fact]
method SaveCorrectHeader (line 38) | [Fact]
method CheckStoryFlags (line 59) | [Fact]
method CheckTable2 (line 68) | [Fact]
method CheckCardInventory (line 74) | [Fact]
method CheckTutorialsClearedFlags (line 86) | [Fact]
method CheckPlayMode (line 98) | [Fact]
method CheckDifficulty (line 104) | [Fact]
method CheckExpAmount (line 110) | [Fact]
method CheckTables (line 116) | [Fact]
method OnSave (line 137) | private static void OnSave(Action<SaveKhRecom> test)
method OnSave2 (line 144) | private static void OnSave2(Action<SaveKhRecom> test)
method OnSaveData (line 151) | private static void OnSaveData(Action<DataRecom> test) =>
FILE: KHSave.Tests/TransferTests.cs
class TransferTests (line 7) | public class TransferTests
method TransferFrom_KH2FM_to_KH2EU (line 9) | [Fact]
FILE: KHSave.Tests/TrssvTest.cs
class TrssvTest (line 26) | public class TrssvTest
method TrssvTest (line 31) | public TrssvTest()
method TestIsValid (line 39) | [Fact]
method TestRead (line 48) | [Fact]
FILE: KHSave/Attributes/AbilityAttribute.cs
class AbilityAttribute (line 21) | public class AbilityAttribute : InfoAttribute
method AbilityAttribute (line 23) | public AbilityAttribute(string name = null) :
class AbilityActionAttribute (line 28) | public class AbilityActionAttribute : AbilityAttribute
method AbilityActionAttribute (line 30) | public AbilityActionAttribute(string name = null) :
class AbilityMobilityAttribute (line 35) | public class AbilityMobilityAttribute : AbilityAttribute
method AbilityMobilityAttribute (line 37) | public AbilityMobilityAttribute(string name = null) :
class AbilitySupportAttribute (line 42) | public class AbilitySupportAttribute : AbilityAttribute
method AbilitySupportAttribute (line 44) | public AbilitySupportAttribute(string name = null) :
FILE: KHSave/Attributes/AccessoryAttribute.cs
class AccessoryAttribute (line 21) | public class AccessoryAttribute : InfoAttribute
method AccessoryAttribute (line 23) | public AccessoryAttribute(string name = null) :
FILE: KHSave/Attributes/ArmorAttribute.cs
class ArmorAttribute (line 21) | public class ArmorAttribute : InfoAttribute
method ArmorAttribute (line 23) | public ArmorAttribute(string name = null) :
FILE: KHSave/Attributes/BoostAttribute.cs
class BoostAttribute (line 3) | public class BoostAttribute : TentAttribute
method BoostAttribute (line 5) | public BoostAttribute(string name = null) : base(name) { }
FILE: KHSave/Attributes/CombatStyleAttribute.cs
class CombatStyleAttribute (line 21) | public class CombatStyleAttribute : InfoAttribute
method CombatStyleAttribute (line 23) | public CombatStyleAttribute(string name) :
FILE: KHSave/Attributes/CommandAttribute.cs
class CommandAttribute (line 21) | public class CommandAttribute : InfoAttribute
method CommandAttribute (line 23) | public CommandAttribute(string name = null) :
FILE: KHSave/Attributes/ConsumableAttribute.cs
class ConsumableAttribute (line 21) | public class ConsumableAttribute : InfoAttribute
method ConsumableAttribute (line 23) | public ConsumableAttribute(string name = null) :
FILE: KHSave/Attributes/FoodAttribute.cs
class FoodAttribute (line 21) | public class FoodAttribute : InfoAttribute
method FoodAttribute (line 23) | public FoodAttribute(string name = null) :
FILE: KHSave/Attributes/FormAttribute.cs
class FormAttribute (line 3) | public class FormAttribute : KeyItemAttribute
method FormAttribute (line 5) | public FormAttribute(string name = null) : base(name) { }
FILE: KHSave/Attributes/GummiBlockAttribute.cs
class GummiBlockAttribute (line 7) | public class GummiBlockAttribute : InfoAttribute
method GummiBlockAttribute (line 9) | public GummiBlockAttribute(string name = null) : base(name)
FILE: KHSave/Attributes/InfoAttribute.cs
class InfoAttribute (line 27) | public class InfoAttribute : Attribute
method InfoAttribute (line 33) | public InfoAttribute()
method InfoAttribute (line 36) | public InfoAttribute(string info)
method GetInfo (line 41) | public static string GetInfo(object value) => cache.Get(value, x =>
method GetItemTypes (line 44) | public static string[] GetItemTypes(object value)
method GetTypeRecursive (line 66) | private static IEnumerable<Type> GetTypeRecursive(Type type) =>
FILE: KHSave/Attributes/IngredientAttribute.cs
class IngredientAttribute (line 21) | public class IngredientAttribute : InfoAttribute
method IngredientAttribute (line 23) | public IngredientAttribute(string name) :
FILE: KHSave/Attributes/KeyItemAttribute.cs
class KeyItemAttribute (line 21) | public class KeyItemAttribute : InfoAttribute
method KeyItemAttribute (line 23) | public KeyItemAttribute(string name = null) :
FILE: KHSave/Attributes/KeybladeAttribute.cs
class KeybladeAttribute (line 21) | public class KeybladeAttribute : InfoAttribute
method KeybladeAttribute (line 23) | public KeybladeAttribute(string name) :
FILE: KHSave/Attributes/LinkAttribute.cs
class LinkAttribute (line 21) | public class LinkAttribute : InfoAttribute
method LinkAttribute (line 23) | public LinkAttribute(string name = null) :
FILE: KHSave/Attributes/MagicAttribute.cs
class MagicAttribute (line 21) | public class MagicAttribute : InfoAttribute
method MagicAttribute (line 23) | public MagicAttribute(string name = null) :
FILE: KHSave/Attributes/ManuscriptAttribute.cs
class ManuscriptAttribute (line 3) | public class ManuscriptAttribute : InfoAttribute
method ManuscriptAttribute (line 5) | public ManuscriptAttribute(string name = null) :
FILE: KHSave/Attributes/MapAttribute.cs
class MapAttribute (line 3) | public class MapAttribute : KeyItemAttribute
method MapAttribute (line 5) | public MapAttribute(string name = null) : base(name) { }
FILE: KHSave/Attributes/MapInfo.cs
class MapInfoAttribute (line 23) | public class MapInfoAttribute : InfoAttribute
method MapInfoAttribute (line 27) | public MapInfoAttribute(string id, string name) :
method GetMapId (line 33) | public static string GetMapId(object value)
FILE: KHSave/Attributes/MateriaAttribute.cs
class MateriaAttribute (line 3) | public class MateriaAttribute : MagicAttribute
method MateriaAttribute (line 5) | public MateriaAttribute(string name = null) :
class MagicMateriaAttribute (line 12) | public class MagicMateriaAttribute : MateriaAttribute
method MagicMateriaAttribute (line 14) | public MagicMateriaAttribute(string name = null) :
class CommandMateriaAttribute (line 21) | public class CommandMateriaAttribute : MateriaAttribute
method CommandMateriaAttribute (line 23) | public CommandMateriaAttribute(string name = null) :
class SupportMateriaAttribute (line 30) | public class SupportMateriaAttribute : MateriaAttribute
method SupportMateriaAttribute (line 32) | public SupportMateriaAttribute(string name = null) :
class CompleteMateriaAttribute (line 39) | public class CompleteMateriaAttribute : MateriaAttribute
method CompleteMateriaAttribute (line 41) | public CompleteMateriaAttribute(string name = null) :
class SummonMateriaAttribute (line 48) | public class SummonMateriaAttribute : MateriaAttribute
method SummonMateriaAttribute (line 50) | public SummonMateriaAttribute(string name = null) :
FILE: KHSave/Attributes/MogItemAttribute.cs
class MogItemAttribute (line 21) | public class MogItemAttribute : InfoAttribute
method MogItemAttribute (line 23) | public MogItemAttribute(string name = null) :
FILE: KHSave/Attributes/MoneyAttribute.cs
class MoneyAttribute (line 3) | public class MoneyAttribute : InfoAttribute
method MoneyAttribute (line 5) | public MoneyAttribute(string name = null) :
FILE: KHSave/Attributes/RecipeAttribute.cs
class RecipeAttribute (line 3) | public class RecipeAttribute : MogItemAttribute
method RecipeAttribute (line 5) | public RecipeAttribute(string name = null) : base(name) { }
FILE: KHSave/Attributes/ReportAttribute.cs
class ReportAttribute (line 3) | public class ReportAttribute : KeyItemAttribute
method ReportAttribute (line 5) | public ReportAttribute(string name = null) : base(name) { }
FILE: KHSave/Attributes/ShieldAttribute.cs
class ShieldAttribute (line 21) | public class ShieldAttribute : InfoAttribute
method ShieldAttribute (line 23) | public ShieldAttribute(string name) :
FILE: KHSave/Attributes/SnackAttribute.cs
class SnackAttribute (line 21) | public class SnackAttribute : InfoAttribute
method SnackAttribute (line 23) | public SnackAttribute(string name = null) :
FILE: KHSave/Attributes/StaffAttribute.cs
class StaffAttribute (line 21) | public class StaffAttribute : InfoAttribute
method StaffAttribute (line 23) | public StaffAttribute(string name) :
FILE: KHSave/Attributes/SummonAttribute.cs
class SummonAttribute (line 3) | public class SummonAttribute : KeyItemAttribute
method SummonAttribute (line 5) | public SummonAttribute(string name = null) : base(name) { }
FILE: KHSave/Attributes/SynthesisAttribute.cs
class SynthesisAttribute (line 21) | public class SynthesisAttribute : InfoAttribute
method SynthesisAttribute (line 23) | public SynthesisAttribute(string name = null) :
FILE: KHSave/Attributes/TentAttribute.cs
class TentAttribute (line 21) | public class TentAttribute : InfoAttribute
method TentAttribute (line 23) | public TentAttribute(string name = null) :
FILE: KHSave/Attributes/TrackAttribute.cs
class TrackAttribute (line 3) | public class TrackAttribute : InfoAttribute
method TrackAttribute (line 5) | public TrackAttribute(string name = null) :
FILE: KHSave/Attributes/UnusedAttribute.cs
class UnusedAttribute (line 25) | public class UnusedAttribute : Attribute
method IsUnused (line 29) | public static bool IsUnused(object value) => cache.Get(value, x =>
FILE: KHSave/Attributes/WeaponAttribute.cs
class WeaponAttribute (line 21) | public class WeaponAttribute : InfoAttribute
method WeaponAttribute (line 23) | public WeaponAttribute(string name = null) :
class WeaponCloudAttribute (line 28) | public class WeaponCloudAttribute : WeaponAttribute
method WeaponCloudAttribute (line 30) | public WeaponCloudAttribute(string name = null) :
class WeaponBarretAttribute (line 35) | public class WeaponBarretAttribute : WeaponAttribute
method WeaponBarretAttribute (line 37) | public WeaponBarretAttribute(string name = null) :
class WeaponTifaAttribute (line 42) | public class WeaponTifaAttribute : WeaponAttribute
method WeaponTifaAttribute (line 44) | public WeaponTifaAttribute(string name = null) :
class WeaponAerithAttribute (line 49) | public class WeaponAerithAttribute : WeaponAttribute
method WeaponAerithAttribute (line 51) | public WeaponAerithAttribute(string name = null) :
class WeaponYuffieAttribute (line 56) | public class WeaponYuffieAttribute : WeaponAttribute
method WeaponYuffieAttribute (line 58) | public WeaponYuffieAttribute(string name = null) :
class WeaponSononAttribute (line 63) | public class WeaponSononAttribute : WeaponAttribute
method WeaponSononAttribute (line 65) | public WeaponSononAttribute(string name = null) :
FILE: KHSave/Attributes/WorldInfoAttribute.cs
class WorldAttribute (line 23) | public class WorldAttribute : InfoAttribute
method WorldAttribute (line 27) | public WorldAttribute(string id, string name) :
method GetWorldId (line 33) | public static string GetWorldId(object value) =>
FILE: KHSave/Extensions/AttributeExtensions.cs
class AttributeExtensions (line 7) | public static class AttributeExtensions
method GetAttribute (line 11) | public static T GetAttribute<T>(this object value) where T : Attribute...
FILE: KHSave/Extensions/BitExtensions.cs
class BitExtensions (line 25) | public static class BitExtensions
method GetFlag (line 27) | public static bool GetFlag(this int value, int bit)
method SetFlag (line 32) | public static int SetFlag(this int value, int bit, bool set)
FILE: KHSave/Extensions/DateTimeExtensions.cs
class DateTimeExtensions (line 5) | public static class DateTimeExtensions
method FromUnixEpoch (line 9) | public static DateTime FromUnixEpoch(this int timestamp) =>
method FromUnixEpoch (line 12) | public static DateTime FromUnixEpoch(this uint timestamp) =>
method ToUnixEpoch (line 15) | public static uint ToUnixEpoch(this DateTime dateTime) =>
FILE: KHSave/Services/CacheService.cs
class CacheService (line 6) | public class CacheService<T>
method Get (line 10) | public T Get(object value, Func<object, T> getter)
FILE: KHSave/Services/TransferServiceLL.cs
class TransferServiceLL (line 9) | public static class TransferServiceLL
method CopySave (line 22) | public static void CopySave<T>(object dst, object src, Dictionary<Type...
method CopySave (line 25) | public static void CopySave(Type type, object dst, object src, Diction...
method CopyArray (line 63) | public static void CopyArray<T>(object dst, object src, PropertyInfo p...
FILE: KHSave/StreamHelpers.cs
class StreamHelpers (line 25) | public static class StreamHelpers
method FromBegin (line 27) | public static T FromBegin<T>(this T stream) where T : Stream => stream...
method SetPosition (line 29) | public static T SetPosition<T>(this T stream, int position) where T : ...
method ReadFlag (line 35) | public static bool ReadFlag(this BinaryReader reader, int offset, int ...
method ReadInt32 (line 41) | public static int ReadInt32(this BinaryReader reader, int offset)
method ReadBytes (line 47) | public static byte[] ReadBytes(this Stream stream) =>
method ReadBytes (line 50) | public static byte[] ReadBytes(this Stream stream, int length)
method ReadAllBytes (line 57) | public static byte[] ReadAllBytes(this Stream stream)
method ReadString (line 64) | public static string ReadString(this BinaryReader reader, int length)
method ReadString (line 71) | public static string ReadString(this BinaryReader reader, int offset, ...
method HasFlag (line 77) | public static bool HasFlag(this byte c, int offset)
method Write (line 82) | public static void Write(this BinaryWriter writer, string str, int len...
method Copy (line 100) | public static void Copy(this Stream source, Stream destination, int le...
FILE: Tooling.MemoryWatcher/Configuration.cs
class GameLabelConfiguration (line 7) | public class GameLabelConfiguration
method GameLabelConfiguration (line 21) | public GameLabelConfiguration()
class GameConfiguration (line 31) | public class GameConfiguration
class Configuration (line 49) | public class Configuration
method Configuration (line 53) | private Configuration(string content)
method ReadFromYaml (line 60) | public static Configuration ReadFromYaml(string fileName) =>
FILE: Tooling.MemoryWatcher/ProcessStream.cs
class ProcessStream (line 12) | public class ProcessStream : Stream
method OpenProcess (line 14) | [DllImport("kernel32.dll")]
method ReadProcessMemory (line 17) | [DllImport("kernel32.dll")]
method WriteProcessMemory (line 20) | [DllImport("kernel32.dll")]
method OpenProcessToken (line 23) | [DllImport("advapi32.dll", SetLastError = true)]
method ProcessStream (line 32) | public ProcessStream(Process process, long baseAddress, uint length)
method Flush (line 56) | public override void Flush()
method Read (line 60) | public override int Read(byte[] buffer, int offset, int count)
method Seek (line 82) | public override long Seek(long offset, SeekOrigin origin)
method SetLength (line 97) | public override void SetLength(long value)
method Write (line 101) | public override void Write(byte[] buffer, int offset, int count)
method OpenProcess (line 121) | private void OpenProcess(Process process)
method GetProcesses (line 131) | public static IEnumerable<Process> GetProcesses() =>
method TryGetProcess (line 134) | public static Process TryGetProcess(Func<Process, bool> predicate, int...
method TryGetProcessAsync (line 151) | public static Task<Process> TryGetProcessAsync(Func<Process, bool> pre...
FILE: Tooling.MemoryWatcher/Program.cs
class Program (line 11) | public static class Program
method Main (line 13) | async static Task Main(string[] args)
method Run (line 52) | async static Task Run(string configFileName, GameConfiguration game)
method Dump (line 177) | private static void Dump(ProcessStream stream)
method LogDifference (line 188) | private static string LogDifference(uint offset, byte previous, byte c...
method GetLabel (line 197) | private static GameLabelConfiguration GetLabel(List<GameLabelConfigura...
method IgnoreOffset (line 211) | static IEnumerable<int> IgnoreOffset(int offset)
method IgnoreOffset (line 216) | static IEnumerable<int> IgnoreOffset(int startOffset, int count) =>
class ExecutionException (line 220) | public class ExecutionException : Exception
method ExecutionException (line 222) | public ExecutionException(string message) :
Condensed preview — 776 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,461K chars).
[
{
"path": ".editorconfig",
"chars": 4808,
"preview": "root = true\n\n[*]\ncharset = utf-8\ninsert_final_newline = true\nindent_style = space\nindent_size = 4\ntab_size = 4\n\n[*.cs]\nc"
},
{
"path": ".gitattributes",
"chars": 52,
"preview": "*.sln text merge=union\n*.csproj text merge=union\n"
},
{
"path": ".github/FUNDING.yml",
"chars": 66,
"preview": "# These are supported funding model platforms\n\ngithub: [Xeeynamo]\n"
},
{
"path": ".github/ISSUE_TEMPLATE/bug-report.md",
"chars": 290,
"preview": "---\nname: Bug report\nabout: Used when a user wants to report a bug\ntitle: GAME NAME - BRIEF EXPLAINATION\nlabels: enhance"
},
{
"path": ".github/ISSUE_TEMPLATE/feature-request.md",
"chars": 263,
"preview": "---\nname: Feature request\nabout: Used when a user wants to request a feature\ntitle: GAME NAME - BRIEF EXPLAINATION\nlabel"
},
{
"path": ".github/ISSUE_TEMPLATE/ff7r-missing-item-name-request.md",
"chars": 619,
"preview": "---\nname: FF7R Missing item name request\nabout: Used when a user wants to add a missing item name\ntitle: FF7R Missing it"
},
{
"path": ".github/ISSUE_TEMPLATE/ff7r-teleport-coordinates-request.md",
"chars": 530,
"preview": "---\nname: FF7R Teleport coordinates request\nabout: Used when a user wants to add a specific location with coordinates\nti"
},
{
"path": ".github/dependabot.yml",
"chars": 503,
"preview": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where "
},
{
"path": ".github/workflows/format-code.yml",
"chars": 1061,
"preview": "name: Format code\non:\n push:\n pull_request:\njobs:\n format-code:\n runs-on: ubuntu-latest\n container:\n image"
},
{
"path": ".github/workflows/test.yml",
"chars": 427,
"preview": "name: Tests\n\non:\n push:\n branches:\n - master\n pull_request:\n types: [assigned, opened, synchronize, reopene"
},
{
"path": ".gitignore",
"chars": 5582,
"preview": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n##\n## G"
},
{
"path": ".gitmodules",
"chars": 238,
"preview": "[submodule \"XeEngine.Tools.Public\"]\n\tpath = XeEngine.Tools.Public\n\turl = https://github.com/xeeynamo/XeEngine.Tools.Publ"
},
{
"path": "CNAME",
"chars": 25,
"preview": "kingdomsaveeditor.xee.dev"
},
{
"path": "KH3SaveEditor.sln",
"chars": 57146,
"preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.0.32014."
},
{
"path": "KHSave/Attributes/AbilityAttribute.cs",
"chars": 1417,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/AccessoryAttribute.cs",
"chars": 914,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/ArmorAttribute.cs",
"chars": 906,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/BoostAttribute.cs",
"chars": 159,
"preview": "namespace KHSave.Attributes\n{\n public class BoostAttribute : TentAttribute\n {\n public BoostAttribute(string"
},
{
"path": "KHSave/Attributes/CombatStyleAttribute.cs",
"chars": 911,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/CommandAttribute.cs",
"chars": 919,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/ConsumableAttribute.cs",
"chars": 916,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/FoodAttribute.cs",
"chars": 904,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/FormAttribute.cs",
"chars": 160,
"preview": "namespace KHSave.Attributes\n{\n public class FormAttribute : KeyItemAttribute\n {\n public FormAttribute(strin"
},
{
"path": "KHSave/Attributes/GummiBlockAttribute.cs",
"chars": 245,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace KHSave.Attributes\n{\n public class Gummi"
},
{
"path": "KHSave/Attributes/InfoAttribute.cs",
"chars": 2379,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/IngredientAttribute.cs",
"chars": 909,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/KeyItemAttribute.cs",
"chars": 910,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/KeybladeAttribute.cs",
"chars": 905,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/LinkAttribute.cs",
"chars": 904,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/MagicAttribute.cs",
"chars": 906,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/ManuscriptAttribute.cs",
"chars": 189,
"preview": "namespace KHSave.Attributes\n{\n public class ManuscriptAttribute : InfoAttribute\n {\n public ManuscriptAttrib"
},
{
"path": "KHSave/Attributes/MapAttribute.cs",
"chars": 158,
"preview": "namespace KHSave.Attributes\n{\n public class MapAttribute : KeyItemAttribute\n {\n public MapAttribute(string "
},
{
"path": "KHSave/Attributes/MapInfo.cs",
"chars": 1610,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/MateriaAttribute.cs",
"chars": 1079,
"preview": "namespace KHSave.Attributes\n{\n public class MateriaAttribute : MagicAttribute\n {\n public MateriaAttribute(s"
},
{
"path": "KHSave/Attributes/MogItemAttribute.cs",
"chars": 910,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/MoneyAttribute.cs",
"chars": 179,
"preview": "namespace KHSave.Attributes\n{\n public class MoneyAttribute : InfoAttribute\n {\n public MoneyAttribute(string"
},
{
"path": "KHSave/Attributes/RecipeAttribute.cs",
"chars": 164,
"preview": "namespace KHSave.Attributes\n{\n public class RecipeAttribute : MogItemAttribute\n {\n public RecipeAttribute(s"
},
{
"path": "KHSave/Attributes/ReportAttribute.cs",
"chars": 164,
"preview": "namespace KHSave.Attributes\n{\n public class ReportAttribute : KeyItemAttribute\n {\n public ReportAttribute(s"
},
{
"path": "KHSave/Attributes/ShieldAttribute.cs",
"chars": 901,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/SnackAttribute.cs",
"chars": 906,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/StaffAttribute.cs",
"chars": 899,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/SummonAttribute.cs",
"chars": 164,
"preview": "namespace KHSave.Attributes\n{\n public class SummonAttribute : KeyItemAttribute\n {\n public SummonAttribute(s"
},
{
"path": "KHSave/Attributes/SynthesisAttribute.cs",
"chars": 914,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/TentAttribute.cs",
"chars": 904,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/TrackAttribute.cs",
"chars": 179,
"preview": "namespace KHSave.Attributes\n{\n public class TrackAttribute : InfoAttribute\n {\n public TrackAttribute(string"
},
{
"path": "KHSave/Attributes/UnusedAttribute.cs",
"chars": 1578,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/WeaponAttribute.cs",
"chars": 1884,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Attributes/WorldInfoAttribute.cs",
"chars": 1117,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Extensions/AttributeExtensions.cs",
"chars": 743,
"preview": "using KHSave.Services;\nusing System;\nusing System.Linq;\n\nnamespace KHSave.Extensions\n{\n public static class Attribute"
},
{
"path": "KHSave/Extensions/BitExtensions.cs",
"chars": 1287,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave/Extensions/DateTimeExtensions.cs",
"chars": 591,
"preview": "using System;\n\nnamespace KHSave.Extensions\n{\n public static class DateTimeExtensions\n {\n private static Dat"
},
{
"path": "KHSave/KHSave.csproj",
"chars": 226,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <TargetFramework>net6</TargetFramework>\n </PropertyGroup>\n\n "
},
{
"path": "KHSave/Services/CacheService.cs",
"chars": 490,
"preview": "using System;\nusing System.Collections.Generic;\n\nnamespace KHSave.Services\n{\n public class CacheService<T>\n {\n "
},
{
"path": "KHSave/Services/TransferServiceLL.cs",
"chars": 3801,
"preview": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Reflection;\n\nn"
},
{
"path": "KHSave/StreamHelpers.cs",
"chars": 3683,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Archives/ArchiveFactories.cs",
"chars": 3062,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Archives/Factories/PcKh1Factory.cs",
"chars": 794,
"preview": "using System.IO;\n\nnamespace KHSave.Archives.Factories\n{\n internal class PcKh1Factory : IArchiveFactory\n {\n "
},
{
"path": "KHSave.Archives/Factories/PcKh2Factory.cs",
"chars": 796,
"preview": "using System.IO;\n\nnamespace KHSave.Archives.Factories\n{\n internal class PcKh2Factory : IArchiveFactory\n {\n "
},
{
"path": "KHSave.Archives/Factories/PcKhBbsFactory.cs",
"chars": 1536,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Archives/Factories/PcKhDddFactory.cs",
"chars": 1542,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Archives/Factories/PcKhRecomFactory.cs",
"chars": 808,
"preview": "using System.IO;\n\nnamespace KHSave.Archives.Factories\n{\n internal class PcKhRecomFactory : IArchiveFactory\n {\n "
},
{
"path": "KHSave.Archives/Factories/Ps2CbsFactory.cs",
"chars": 1057,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Text;\nusing System.Thre"
},
{
"path": "KHSave.Archives/Factories/Ps2PsuFactory.cs",
"chars": 1224,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Text;\nusing System.Thre"
},
{
"path": "KHSave.Archives/Factories/Ps3PsvFactory.cs",
"chars": 916,
"preview": "using System;\nusing System.IO;\n\nnamespace KHSave.Archives.Factories\n{\n public class Ps3PsvFactory : IArchiveFactory\n "
},
{
"path": "KHSave.Archives/Factories/Ps4Kh1Factory.cs",
"chars": 1537,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Archives/Factories/Ps4Kh2Factory.cs",
"chars": 1539,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Archives/Factories/Ps4KhDddFactory.cs",
"chars": 1548,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Archives/Factories/Ps4KhRecomFactory.cs",
"chars": 1551,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Archives/IArchive.cs",
"chars": 999,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Archives/IArchiveEntry.cs",
"chars": 1051,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Archives/IArchiveFactory.cs",
"chars": 1033,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Archives/KHSave.Archives.csproj",
"chars": 377,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <TargetFramework>net6</TargetFramework>\n </PropertyGroup>\n\n <"
},
{
"path": "KHSave.Archives/PcSaveArchive.cs",
"chars": 5425,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Xe.BinaryMapper;\n\nnamespace KH"
},
{
"path": "KHSave.Archives/Ps2CbsArchive.cs",
"chars": 6590,
"preview": "// https://github.com/root670/PS2SaveUtility/blob/master/src/CBSFile.cpp\n\nusing ICSharpCode.SharpZipLib.Zip.Compression."
},
{
"path": "KHSave.Archives/Ps2PsuArchive.cs",
"chars": 3283,
"preview": "// https://github.com/root670/PS2SaveUtility/blob/master/src/PSUFile.cpp\n\nusing System;\nusing System.Collections.Generic"
},
{
"path": "KHSave.Archives/Ps3PsvArchive.cs",
"chars": 4155,
"preview": "// https://github.com/PMStanley/PSV-Exporter/blob/master/PSVFormat.pas\n\nusing System;\nusing System.Collections.Generic;\n"
},
{
"path": "KHSave.Archives/Ps4SaveArchive.cs",
"chars": 4764,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib02/KHSave.Lib02.csproj",
"chars": 315,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <TargetFramework>net6</TargetFramework>\n </PropertyGroup>\n\n "
},
{
"path": "KHSave.Lib02/Models/Objective.cs",
"chars": 975,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib02/Models/PlayableCharacter.cs",
"chars": 1043,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib02/Models/Slot.cs",
"chars": 2990,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib02/SaveKh02.cs",
"chars": 2147,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib02/Types/CommandType.cs",
"chars": 1998,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib02/Types/DifficultyType.cs",
"chars": 930,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib02/Types/LocationType.cs",
"chars": 2309,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib02/Types/MapType.cs",
"chars": 1668,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib02/Types/SpawnType.cs",
"chars": 4648,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib1/Attributes/ArmorGummiAttribute.cs",
"chars": 479,
"preview": "using KHSave.Attributes;\nusing System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace KHSave.Lib1.Attri"
},
{
"path": "KHSave.Lib1/Attributes/BlueprintGummiAttribute.cs",
"chars": 410,
"preview": "using KHSave.Attributes;\nusing KHSave.Lib1.Types;\nusing System;\nusing System.Collections.Generic;\nusing System.Text;\n\nna"
},
{
"path": "KHSave.Lib1/Attributes/CockpitGummiAttribute.cs",
"chars": 458,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace KHSave.Lib1.Attributes\n{\n public class "
},
{
"path": "KHSave.Lib1/Attributes/EngineGummiAttribute.cs",
"chars": 731,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace KHSave.Lib1.Attributes\n{\n public class "
},
{
"path": "KHSave.Lib1/Attributes/ExtraGummiAttribute.cs",
"chars": 618,
"preview": "using KHSave.Attributes;\nusing System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace KHSave.Lib1.Attri"
},
{
"path": "KHSave.Lib1/Attributes/GummiBlockAttribute.cs",
"chars": 938,
"preview": "using KHSave.Attributes;\nusing System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace KHSave.Lib1.Attri"
},
{
"path": "KHSave.Lib1/Attributes/SpecialGummiAttribute.cs",
"chars": 554,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace KHSave.Lib1.Attributes\n{\n public class "
},
{
"path": "KHSave.Lib1/Attributes/WeaponGummiAttribute.cs",
"chars": 625,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace KHSave.Lib1.Attributes\n{\n public class "
},
{
"path": "KHSave.Lib1/Attributes/WingGummiAttribute.cs",
"chars": 540,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace KHSave.Lib1.Attributes\n{\n public class "
},
{
"path": "KHSave.Lib1/Constants.cs",
"chars": 169,
"preview": "namespace KHSave.Lib1\n{\n public class Constants\n {\n public const uint MagicCodeFm = 0x05;\n public co"
},
{
"path": "KHSave.Lib1/ISaveKh1.cs",
"chars": 958,
"preview": "using KHSave.Lib1.Types;\nusing KHSave.Lib1.Models;\nusing System.IO;\n\nnamespace KHSave.Lib1\n{\n public interface ISaveK"
},
{
"path": "KHSave.Lib1/KHSave.Lib1.csproj",
"chars": 315,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <TargetFramework>net6</TargetFramework>\n </PropertyGroup>\n\n "
},
{
"path": "KHSave.Lib1/Models/Character.cs",
"chars": 1995,
"preview": "using KHSave.Lib1.Types;\nusing Xe.BinaryMapper;\n\nnamespace KHSave.Lib1.Models\n{\n public class Character\n {\n "
},
{
"path": "KHSave.Lib1/Models/GummiBlock.cs",
"chars": 878,
"preview": "using KHSave.Lib1.Types;\nusing System;\nusing Xe.BinaryMapper;\n\nnamespace KHSave.Lib1.Models\n{\n public class GummiBloc"
},
{
"path": "KHSave.Lib1/Models/Gummiship.cs",
"chars": 560,
"preview": "using KHSave.Lib1.Types;\nusing System.Threading;\nusing Xe.BinaryMapper;\n\nnamespace KHSave.Lib1.Models\n{\n public class"
},
{
"path": "KHSave.Lib1/SaveKh1.EU.cs",
"chars": 2111,
"preview": "using KHSave.Lib1.Models;\nusing KHSave.Lib1.Types;\nusing System.IO;\nusing Xe.BinaryMapper;\n\nnamespace KHSave.Lib1\n{\n "
},
{
"path": "KHSave.Lib1/SaveKh1.FinalMix.cs",
"chars": 1976,
"preview": "using KHSave.Lib1.Models;\nusing KHSave.Lib1.Types;\nusing System.IO;\nusing Xe.BinaryMapper;\n\nnamespace KHSave.Lib1\n{\n "
},
{
"path": "KHSave.Lib1/SaveKh1.cs",
"chars": 2014,
"preview": "using System;\nusing System.IO;\nusing Xe.BinaryMapper;\n\nnamespace KHSave.Lib1\n{\n public partial class SaveKh1\n {\n\n "
},
{
"path": "KHSave.Lib1/Types/AbilityType.cs",
"chars": 3456,
"preview": "// https://pastebin.com/ZH0L3XXi\nusing KHSave.Attributes;\n\nnamespace KHSave.Lib1.Types\n{\n public enum AbilityType : b"
},
{
"path": "KHSave.Lib1/Types/CommandType.cs",
"chars": 290,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.Lib1.Types\n{\n public enum CommandType : byte\n {\n [Magic] Fire,\n "
},
{
"path": "KHSave.Lib1/Types/DifficultyType.cs",
"chars": 359,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.Lib1.Types\n{\n public enum Difficulty : byte\n {\n [Info(\"Normal\")]"
},
{
"path": "KHSave.Lib1/Types/EquipmentType.cs",
"chars": 11514,
"preview": "// https://pastebin.com/dfARF8ui\nusing KHSave.Attributes;\n\nnamespace KHSave.Lib1.Types\n{\n public enum EquipmentType :"
},
{
"path": "KHSave.Lib1/Types/GameTypes.cs",
"chars": 190,
"preview": "using System;\n\nnamespace KHSave.Lib1.Types\n{\n [Flags]\n public enum GameTypes\n {\n None,\n Jp = 1,\n "
},
{
"path": "KHSave.Lib1/Types/GummiBlocksType.cs",
"chars": 7534,
"preview": "using KHSave.Attributes;\nusing KHSave.Lib1.Attributes;\n\nnamespace KHSave.Lib1.Types\n{\n public enum GummiBlocksType : "
},
{
"path": "KHSave.Lib1/Types/PlayableCharacterType.cs",
"chars": 403,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.Lib1.Types\n{\n public enum PlayableCharacterType : byte\n {\n [Info"
},
{
"path": "KHSave.Lib1/Types/WorldType.cs",
"chars": 946,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.Lib1.Types\n{\n public enum WorldType : uint\n {\n [Info(\"Dive into "
},
{
"path": "KHSave.Lib2/Constants.cs",
"chars": 48978,
"preview": "using KHSave.Attributes;\nusing KHSave.Lib2.Types;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\n\nna"
},
{
"path": "KHSave.Lib2/ISaveKh2.cs",
"chars": 2217,
"preview": "using KHSave.Lib2.Models;\nusing KHSave.Lib2.Types;\nusing System.IO;\n\nnamespace KHSave.Lib2\n{\n public interface ISaveK"
},
{
"path": "KHSave.Lib2/KHSave.Lib2.csproj",
"chars": 315,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <TargetFramework>net6</TargetFramework>\n </PropertyGroup>\n\n "
},
{
"path": "KHSave.Lib2/Models/CharacterFinalMix.cs",
"chars": 1774,
"preview": "using KHSave.Lib2.Types;\nusing Xe.BinaryMapper;\n\nnamespace KHSave.Lib2.Models\n{\n public class CharacterFinalMix : ICh"
},
{
"path": "KHSave.Lib2/Models/CharacterVanilla.cs",
"chars": 1780,
"preview": "using KHSave.Lib2.Types;\nusing Xe.BinaryMapper;\n\nnamespace KHSave.Lib2.Models\n{\n public class CharacterVanilla : ICha"
},
{
"path": "KHSave.Lib2/Models/DriveFormFinalMix.cs",
"chars": 423,
"preview": "using KHSave.Lib2.Types;\nusing Xe.BinaryMapper;\n\nnamespace KHSave.Lib2.Models\n{\n public class DriveFormFinalMix : IDr"
},
{
"path": "KHSave.Lib2/Models/DriveFormVanilla.cs",
"chars": 422,
"preview": "using KHSave.Lib2.Types;\nusing Xe.BinaryMapper;\n\nnamespace KHSave.Lib2.Models\n{\n public class DriveFormVanilla : IDri"
},
{
"path": "KHSave.Lib2/Models/ICharacter.cs",
"chars": 1220,
"preview": "using KHSave.Lib2.Types;\n\nnamespace KHSave.Lib2.Models\n{\n public interface ICharacter\n {\n EquipmentType Wea"
},
{
"path": "KHSave.Lib2/Models/IDriveForm.cs",
"chars": 297,
"preview": "using KHSave.Lib2.Types;\n\nnamespace KHSave.Lib2.Models\n{\n public interface IDriveForm\n {\n EquipmentType Wea"
},
{
"path": "KHSave.Lib2/Models/IPlaceScript.cs",
"chars": 177,
"preview": "namespace KHSave.Lib2.Models\n{\n public interface IPlaceScript\n {\n byte Map { get; set; }\n byte Battl"
},
{
"path": "KHSave.Lib2/Models/PartyMembers.cs",
"chars": 434,
"preview": "using KHSave.Lib2.Types;\nusing Xe.BinaryMapper;\n\nnamespace KHSave.Lib2.Models\n{\n public class PartyMembers\n {\n "
},
{
"path": "KHSave.Lib2/Models/PlaceScriptFinalMix.cs",
"chars": 428,
"preview": "using Xe.BinaryMapper;\n\nnamespace KHSave.Lib2.Models\n{\n public class PlaceScriptFinalMix : IPlaceScript\n {\n "
},
{
"path": "KHSave.Lib2/Models/PlaceScriptVanilla.cs",
"chars": 260,
"preview": "using Xe.BinaryMapper;\n\nnamespace KHSave.Lib2.Models\n{\n public class PlaceScriptVanilla : IPlaceScript\n {\n "
},
{
"path": "KHSave.Lib2/Models/Progress.cs",
"chars": 498,
"preview": "using Xe.BinaryMapper;\n\nnamespace KHSave.Lib2.Models\n{\n public class Progress\n {\n [Data(Count = 0x20)] publ"
},
{
"path": "KHSave.Lib2/SaveKh2.European.cs",
"chars": 3749,
"preview": "using KHSave.Lib2.Models;\nusing KHSave.Lib2.Types;\nusing System;\nusing System.IO;\nusing Xe.BinaryMapper;\n\nnamespace KHSa"
},
{
"path": "KHSave.Lib2/SaveKh2.FinalMix.cs",
"chars": 6183,
"preview": "using KHSave.Lib2.Models;\nusing KHSave.Lib2.Types;\nusing System;\nusing System.IO;\nusing Xe.BinaryMapper;\n\nnamespace KHSa"
},
{
"path": "KHSave.Lib2/SaveKh2.TransferMappings.cs",
"chars": 4938,
"preview": "using KHSave.Lib2.Models;\nusing KHSave.Lib2.Types;\nusing KHSave.Services;\nusing System;\nusing System.Collections.Generic"
},
{
"path": "KHSave.Lib2/SaveKh2.cs",
"chars": 4236,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Xe.BinaryMapper;\n\nnamespace KH"
},
{
"path": "KHSave.Lib2/Types/AbilityStyleType.cs",
"chars": 214,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.Lib2.Types\n{\n public enum AbilityStyleType : byte\n {\n [Info(\"Fre"
},
{
"path": "KHSave.Lib2/Types/BattleStyleType.cs",
"chars": 429,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.Lib2.Types\n{\n public enum BattleStyleType : byte\n {\n [CombatStyl"
},
{
"path": "KHSave.Lib2/Types/CharacterType.cs",
"chars": 408,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.Lib2.Types\n{\n public enum CharacterType\n {\n [Info] Sora,\n "
},
{
"path": "KHSave.Lib2/Types/CommandType.cs",
"chars": 1027,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.Lib2.Types\n{\n public enum CommandType : short\n {\n Empty,\n "
},
{
"path": "KHSave.Lib2/Types/DifficultyType.cs",
"chars": 200,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.Lib2.Types\n{\n public enum Difficulty : byte\n {\n [Info] Beginner,"
},
{
"path": "KHSave.Lib2/Types/DriveFormType.cs",
"chars": 231,
"preview": "namespace KHSave.Lib2.Types\n{\n public enum DriveFormType\n {\n Valor,\n Wisdom,\n Limit,\n "
},
{
"path": "KHSave.Lib2/Types/EquipmentType.cs",
"chars": 28856,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.Lib2.Types\n{\n public enum EquipmentType : short\n {\n [Info] Empty"
},
{
"path": "KHSave.Lib2/Types/GameType.cs",
"chars": 189,
"preview": "using System;\n\nnamespace KHSave.Lib2.Types\n{\n [Flags]\n public enum GameType\n {\n None,\n Jp = 1,\n "
},
{
"path": "KHSave.Lib2/Types/InventoryType.cs",
"chars": 15168,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib2/Types/PlayableCharacterType.cs",
"chars": 418,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.Lib2.Types\n{\n public enum PlayableCharacterType : byte\n {\n [Info"
},
{
"path": "KHSave.Lib2/Types/WorldType.cs",
"chars": 1871,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/ISaveKh3.cs",
"chars": 2922,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/KHSave.Lib3.csproj",
"chars": 309,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <TargetFramework>net6</TargetFramework>\n </PropertyGroup>\n\n "
},
{
"path": "KHSave.Lib3/Models/Ability.cs",
"chars": 1596,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Models/AiModel.cs",
"chars": 1088,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Models/EquipmentItem.cs",
"chars": 1799,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Models/FlantasticRecord.cs",
"chars": 257,
"preview": "using Xe.BinaryMapper;\n\nnamespace KHSave.Lib3.Models\n{\n public class FlantasticRecord\n {\n [Data] public int"
},
{
"path": "KHSave.Lib3/Models/InventoryEntry.cs",
"chars": 1263,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Models/MagicGroup.cs",
"chars": 1344,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Models/PhotoEntry.cs",
"chars": 937,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Models/PlayableCharacter.cs",
"chars": 1957,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Models/Records.cs",
"chars": 1404,
"preview": "using System.Collections.Generic;\nusing Xe.BinaryMapper;\n\nnamespace KHSave.Lib3.Models\n{\n public class Records\n {\n"
},
{
"path": "KHSave.Lib3/Models/ShortcutGroup.cs",
"chars": 1073,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Presets/Preset.Pawn.cs",
"chars": 3886,
"preview": "using System.Collections.Generic;\n\nnamespace KHSave.Lib3.Presets\n{\n public static partial class Presets\n {\n "
},
{
"path": "KHSave.Lib3/Presets/Presets.Map.cs",
"chars": 14870,
"preview": "using System.Collections.Generic;\n\nnamespace KHSave.Lib3.Presets\n{\n public static partial class Presets\n {\n "
},
{
"path": "KHSave.Lib3/Presets/Presets.Story.cs",
"chars": 54693,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/SaveKh3.cs",
"chars": 5877,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/SaveKh3u109.cs",
"chars": 4916,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/AbilityType.cs",
"chars": 18909,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/AccessoryType.cs",
"chars": 9047,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/AiAbilityType.cs",
"chars": 962,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/AiCombatStyleType.cs",
"chars": 1038,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/AiRecoveryType.cs",
"chars": 1003,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/ArmorType.cs",
"chars": 6468,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/CharacterIconType.cs",
"chars": 1493,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/ChoiceType.cs",
"chars": 1025,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/CommandType.cs",
"chars": 11318,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/ConsumableType.cs",
"chars": 5237,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/DifficultyType.cs",
"chars": 929,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/FoodType.cs",
"chars": 4946,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/InventoryType.cs",
"chars": 29283,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/ItemType.cs",
"chars": 1466,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/KeyItemType.cs",
"chars": 5319,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/LocationType.cs",
"chars": 6224,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/MaterialType.cs",
"chars": 3897,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/MogType.cs",
"chars": 4953,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/PartyCharacter.cs",
"chars": 906,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.Lib3.Types\n{\n public enum PartyCharacter : byte\n {\n [Info(\"Defau"
},
{
"path": "KHSave.Lib3/Types/PlayableCharacterType.cs",
"chars": 1060,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/RecordAttractionType.cs",
"chars": 1034,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/RecordShotlockType.cs",
"chars": 2864,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/SnackType.cs",
"chars": 4959,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/StoryFlagType.cs",
"chars": 5645,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/StoryLabelType.cs",
"chars": 29663,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/SyntesisType.cs",
"chars": 4965,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/TentType.cs",
"chars": 5052,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/WeaponType.cs",
"chars": 7065,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.Lib3/Types/WorldType.cs",
"chars": 2272,
"preview": "/*\n Kingdom Save Editor\n Copyright (C) 2020 Luciano Ciccariello\n\n This program is free software: you can redist"
},
{
"path": "KHSave.LibBbs/Attributes/AbilityAttribute.cs",
"chars": 388,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.LibBbs.Attributes\n{\n public class AbilityStatusAttribute : AbilityAttribut"
},
{
"path": "KHSave.LibBbs/Attributes/ActionAttribute.cs",
"chars": 512,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.LibBbs.Attributes\n{\n public class MovementAttribute : InfoAttribute\n {\n"
},
{
"path": "KHSave.LibBbs/Attributes/CommandAttribute.cs",
"chars": 808,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.LibBbs.Attributes\n{\n public class AttackAttribute : InfoAttribute\n {\n "
},
{
"path": "KHSave.LibBbs/Attributes/CommandStyleAttribute.cs",
"chars": 572,
"preview": "using KHSave.Attributes;\n\nnamespace KHSave.LibBbs.Attributes\n{\n public class CommandStyleLevel1Attribute : InfoAttrib"
},
{
"path": "KHSave.LibBbs/Constants.cs",
"chars": 243,
"preview": "namespace KHSave.LibBbs\n{\n internal class Constants\n {\n public const uint MagicCode = 1146307138;\n }\n\n "
},
{
"path": "KHSave.LibBbs/ISaveKhBbs.cs",
"chars": 770,
"preview": "using KHSave.LibBbs.Models;\nusing KHSave.LibBbs.Types;\n\nnamespace KHSave.LibBbs\n{\n public interface ISaveKhBbs\n {\n"
},
{
"path": "KHSave.LibBbs/KHSave.LibBbs.csproj",
"chars": 315,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <TargetFramework>net6</TargetFramework>\n </PropertyGroup>\n\n "
},
{
"path": "KHSave.LibBbs/Models/Ability.cs",
"chars": 292,
"preview": "using Xe.BinaryMapper;\n\nnamespace KHSave.LibBbs.Models\n{\n public class Ability\n {\n [Data] public byte Numbe"
},
{
"path": "KHSave.LibBbs/Models/Character.cs",
"chars": 1165,
"preview": "using KHSave.LibBbs.Types;\nusing Xe.BinaryMapper;\n\nnamespace KHSave.LibBbs.Models\n{\n public class Character\n {\n "
},
{
"path": "KHSave.LibBbs/Models/Command.cs",
"chars": 382,
"preview": "using KHSave.LibBbs.Types;\nusing Xe.BinaryMapper;\n\nnamespace KHSave.LibBbs.Models\n{\n public class Command\n {\n "
},
{
"path": "KHSave.LibBbs/Models/Deck.cs",
"chars": 713,
"preview": "using Xe.BinaryMapper;\n\nnamespace KHSave.LibBbs.Models\n{\n public class Deck\n {\n [Data(Count = 8)] public Co"
},
{
"path": "KHSave.LibBbs/Models/Dlink.cs",
"chars": 269,
"preview": "using KHSave.LibBbs.Types;\nusing Xe.BinaryMapper;\n\nnamespace KHSave.LibBbs.Models\n{\n public class Dlink\n {\n "
}
]
// ... and 576 more files (download for full content)
About this extraction
This page contains the full source code of the Xeeynamo/KingdomSaveEditor GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 776 files (2.2 MB), approximately 612.0k tokens, and a symbol index with 2032 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.